gpt4 book ai didi

javascript - 主干模型不允许我获取数据

转载 作者:行者123 更新时间:2023-12-02 19:13:30 24 4
gpt4 key购买 nike

我对 Backbone 非常陌生,正在做一个简单的教程。我不断遇到我不明白的错误。这是我的代码。

(function($) {
dataModel = new Backbone.Model.extend({
data: [
{text: "Google", href: "www.google.com"},
{text: "Yahoo", href: "www.yahoo.com"},
{text: "Youtube", href: "www.youtube.com"},
]
});

var View = Backbone.View.extend({
initialize: function(){
this.template = $('#list-template').children();
},
el: $('#container'),
events: {
"click button": "render"
},
render: function(){
var data = this.model.get('data');
for(var i = 0, l = data.length; i < l; i++){
var li = this.template.clone().find('a').attr('href', data[i].href).text(data[i].text).end();
this.el.find('ul').append(li);
}
}
});

var view = new View({ model: dataModel });
})(jQuery);

当我打电话this.model.get('data')时我收到错误 TypeError: Object function (){return a.apply(this,arguments)} has no method 'get' 。请告诉我我的错误。谢谢。

最佳答案

扩展模型时传递的所有属性和方法都是在其原型(prototype)上设置的,而不是作为其属性,并且这里的 dataModel 不是 Backbone 模型实例,而是 Backbone Model 子类。如果以这种方式访问​​数据属性,您需要实例化模型并执行 modelInstance.data 而不是 modelInstance.get('data') 就好像它一样将数据设置为模型属性,如下例所示。

你想在这里做的是

var dataModel = new Backbone.Model({ // without the extend!
data: [
{text: "Google", href: "www.google.com"},
{text: "Yahoo", href: "www.yahoo.com"},
{text: "Youtube", href: "www.youtube.com"},
]
});

因为您想要创建模型的实例而不是子类 Backbone.Model 类。 Extend 方法用于子类化核心 Backbone 类 - View 、模型、集合和路由器。

关于javascript - 主干模型不允许我获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13396527/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com