我一直在关注我发现的 javascript示例代码。看起来示例和当前版本的 Spine 有点不同,因为我的代码几乎完全相同。上涨是我的电话之一没有得到代理。
exports.UrlsList = Spine.Controller.create({
elements: {
".items": "items",
"form": "form",
"input": "input"
},
events: {
"submit form": "create"
},
proxied: ["render", "addAll", "addOne"],
init: function(){
Url.bind("create", this.addOne);
Url.bind("refresh", this.addAll);
},
addOne: function(url){
var view = Urls.init({item: url}); // The is another controller
this.items.append(view.render().el); //This is where the error occurs
},
addAll: function(){
Url.each(this.addOne);
},
create: function(e){
e.preventDefault();
var value = this.input.val();
if (value) {
Url.create({content: value});
}
this.input.val("");
this.input.focus();
}
});
当 addOne 函数被调用时,它是在 Url 的上下文中调用的,而不是在当前类的上下文中。即使 addOne 在代理列表中,它似乎也没有代理任何内容。有任何想法吗?