这是我的简化代码
var PlayerModel = Backbone.Model.extend();
var PlayerProfileView = Backbone.View.extend({
model : new PlayerModel({url: "http://mysite.com/api/getpalyer.php"}),
render: function(){
this.model.fetch();
}
});
系统不断给我这个错误信息
未捕获错误:必须指定“url”属性或函数
我完全不知道我的代码有什么问题。
答案 0 :(得分:3)
这是Backbone#Model
的构造函数:
var Model = Backbone.Model = function(attributes, options) {
如您所见,options
应作为第二个参数。在这里,您将网址作为attribute
传递(尝试this.get('url')
进行验证)。
将其更改为:
model : new PlayerModel(null, {url: "http://mysite.com/api/getpalyer.php"});
另一件事:
此外,在类定义(new PlayerModel({url: "http://mysite.com/api/getpalyer.php"}),
)中声明一个新对象将导致所有对象共享此对象的单个实例(即任何PlayerProfileView
将共享一个{ {1}})。其背后的原因是它在创建类时被评估并放入类的原型中。
答案 1 :(得分:0)
我认为您应该将url
放在PlayerModel
的定义中,而不是在致电new
时传递它。如果您仍希望在new
中传递它,则需要将其指定为第二个参数(如Loamhoof
指出的那样)
var PlayerModel = Backbone.Model.extend({
url: "http://mysite.com/api/getpalyer.php"
});