gpt4 book ai didi

javascript - Spine.js 未知记录(可能范围错误?)

转载 作者:行者123 更新时间:2023-11-28 09:23:44 26 4
gpt4 key购买 nike

如果我有一个“专辑”列表,并且单击其中一个,我会导航到另一个 View (/#/album/:id),该 View 由名为 SingleAlbum 的 Controller 控制。它正确获取数据,但我无法渲染它。我已经查看了 SO 和 Spine Google Group 上的其他“未知记录”问题,但没有任何结果。这是我的代码:

var SingleAlbum = Spine.Controller.sub({
apiObj: {
url: '/api/album',
processData: true,
data: {
id: ''
}
},
model: Album,
panel: $('.album_single'),
tmpl: $('#albumTpl'),

init: function() {
this.apiObj.url = this.model.url;
if(this.panel.children.length > 0) {
this.panel.html('');
}
},
render: function(id) {
console.log('render');

var template = singleAlbum.tmpl.html(),
data = Album.find(id), // <-- this doesn't want to work
html = Mustache.to_html(template, data);
singleAlbum.panel.html(html);
},
getData: function(id) {
//var me = this;
console.log('get data');
this.apiObj.data.id = id;
this.apiObj.url = this.model.url;

this.model.bind('refresh change', function(id) {
//me.render(id);
singleAlbum.render(id);
console.log('should be rendered');
});

this.model.fetch(this.apiObj);
console.log('record: ',this.model.find(id));
if(Object.keys(this.model.find(id)).length > 0) {
//this.render(id);
}
}

});

当我在事件处理程序上调用 .render() 时,就会出现问题。我可以手动查看 Album.all() 有记录,并且可以在应用程序中的其他任何位置执行 Album.find(id) 操作,但是当我在 var data = Album.find(id) 上执行操作时它失败。这是范围问题吗?我是否遗漏了一些明显的东西?

顺便说一句,请原谅我代码的冗长。我实际上正在制作一个 SingleItem Controller ,其中 SingleArtist 和 SingleAlbum 将是其子类。我认为这可能是一个问题,所以我撕掉了代码来自己测试它。

编辑:具体来说,我的路线如下所示:

'/album/:id': function(params) {
console.log('navigated to /album/', params.id);
singleAlbum.getData(params.id);
}

最佳答案

啊哈!我在事件处理程序中传递了 id,这覆盖了另一个 id 变量。它应该是这样的:

render: function(id) {
var template = this.tmpl.html(),
data = this.model.find(id),
html = Mustache.to_html(template, data);
this.panel.html(html);
},
getData: function(id) {
var me = this;
this.apiObj.data.id = id;
this.apiObj.url = this.model.url;

this.model.bind('refresh change', function() { // <-- don't need to pass anything
me.render(id);
});

this.model.fetch(this.apiObj);
}

关于javascript - Spine.js 未知记录(可能范围错误?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14656447/

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