Bon*_*usK 1 javascript jquery requirejs backbone.js backbone-model
虽然所有脚本都已加载,但是我遇到了使用骨干的问题,其中模型似乎未定义为骨干.(我使用require来加载主干和其他javascript文件).
所以每当我做一个collection.fetch,我在firebug中得到这个错误:
TypeError: targetModel is undefined
Run Code Online (Sandbox Code Playgroud)
当我运行脚本时,它在此时保持:
if (attrs instanceof Model) {
id = model = attrs;
} else {
id = attrs[targetModel.prototype.idAttribute];
}
Run Code Online (Sandbox Code Playgroud)
当我用鼠标悬停在targetModel上时,它说:undefined它现在似乎不起作用,我唯一做的就是改变我的html模板,它只在collection.fetch之后加载.
你能帮帮我吗?
这是我的模型:
var OF = OF || {};
OF.UsersMdl = Backbone.Model.extend({
default: {
username: '',
mailinglist: '',
email: ''
},
initialize: function() {
//
},
result: {
success: false,
message: ''
},
validate: function(att) {
}
});
Run Code Online (Sandbox Code Playgroud)
这是集合:
var OF = OF || {};
OF.UsersCollection = Backbone.Collection.extend({
initialize: function() {
//
},
parse: function(data){
return data["all-users"];
},
model: OF.UsersMdl,
url: 'php/api/users'
});
Run Code Online (Sandbox Code Playgroud)
最后但并非最不重要的是带有require部分的路由器:
goToUsers: function() {
require(['./models/users', './views/users_view', './collections/user_collection'], function(UsersMdl, UsersView, UsersCollection) {
OF.usersMdl = new OF.UsersMdl;
OF.usersCollection = new OF.UsersCollection;
OF.usersView = new OF.UsersView;
//when the collection is fetched
$.when(OF.usersCollection.fetch({
data: {
"admin": OF.login.attributes.admin,
"session": OF.login.attributes.session
},
success: function(){
//console.log(OF.usersCollection.length);
}
//then render the view
})).then(function(){
OF.usersView.render();
}, 300);
});
},
Run Code Online (Sandbox Code Playgroud)
以下是将通过fetch进行检索的JSON:
{"all-users":[{"username":"tester","mailinglist":"1","email":"tester@tester.test"},{"username":"tester2","mailinglist" :"1","email":"tester2 @tes.test"},{"username":"tester3","mailinglist":"0","email":"tester3@tester.test"}]}
提前致谢
我有同样的错误,并且在很长一段时间内反对它,因为骨干对我来说是新的,这也是一个重要的问题.无论如何,我最终发现订单很重要.卫生署!(在我使用CoffeeScript和"class"语句时不太明显.)在我的模型中,我在模型之前设置了Collection(感谢Rails书中Backbone.js中的错误示例代码).我扭转了这一点,这个错误消失了,揭示了我真正的获取问题.
同样,model:由于这个原因或其他原因,您的属性可能无效,在稍后尝试引用时将其保留为未定义.
旁注:我在Backbone 1.0.0中遇到了类似的错误.当我升级到Backbone 1.1.0时,我在骨干代码的同一点上得到了这个确切的错误.
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |