【发布时间】:2011-08-05 14:20:56
【问题描述】:
我正在创建应用程序的客户端视图,我需要帮助来从我的 JSON 文件中检索特定数据。我正在使用 Backbone.js 和 Underscore.js 来实现这一点。
(function($) {
window.Node = Backbone.Model.extend({
getName: function(){
return this.get('Name');
}
});
window.Nodes = Backbone.Collection.extend({
model:Node,
url: '/packageview.json'
});
window.NodeView = Backbone.View.extend({
tagName: "div",
className: "package-template",
events:{
"click #display-name" : "displayname",
},
//.. I have a render and initialize function here which should not be a concern
displayname: function(){
var node = new Node();
alert(node.getName()); //trying to alert
},
});
});
我正在尝试从模型中获取名称并提醒它。我的 html 中有一个带有 id 的按钮,当我按下该按钮时,我得到“未定义”作为警报。这是我的 JSON 文件的外观:
{
"Id": 2,
"Name": "Some Package",
"IsComplete": false,
"IsNodeTagComplete": false
}
我想我在某个地方犯了一个愚蠢的错误。我是否对模型有很多期待?
【问题讨论】:
-
如果不查看代码的其他部分,真的很难找出问题所在。我知道这很简单,但你有很多外部依赖项来帮助我们调试。您能否简化上述内容或添加相关的 HTML/Backbone 代码?例如。包视图节点或正在单击的节点是什么或
nodeinstance定义在哪里? -
快速提问:为什么不直接使用
model.get('Name')?而不是有一个明确的吸气剂?只是好奇。至于您的 JSON 文件,您不是用数据创建模型……只是一个空模型。你一定会得到未定义的...... -
@Nupul:我想我应该删除渲染和初始化函数。也许这会简化代码并且可以更好地理解。
-
@Nupul:它也不起作用。它的应用真的很复杂。我需要了解 getter 和 setter 是如何工作的,因为我会经常使用它们。
标签: javascript jquery backbone.js underscore.js