Javascript 无法获取主干模型获取的结果
我的模型URL根目录:Javascript 无法获取主干模型获取的结果,javascript,backbone.js,Javascript,Backbone.js,我的模型URL根目录: urlRoot: function() { if (this.id != null ) { return 'notes/' + this.id; } else return 'notes'; } 功能: window.show_note = function (note_id) { var note = new Memo.Models.Note([], { id: note_id }); note.fetch({ suc
urlRoot: function() {
if (this.id != null ) {
return 'notes/' + this.id;
} else return 'notes';
}
功能:
window.show_note = function (note_id) {
var note = new Memo.Models.Note([], { id: note_id });
note.fetch({
success: function (collection, note, response) {
var noteObj = collection.get("0");
var noteView = new Memo.Views.FullNote( {model: noteObj }, {flag: 0 } );
$('.content').html(noteView.render().el);
}
});}
{id:note\u id}-我将此发布到服务器以按id获取注释
我想在note.fetch的回调函数-success之后对模型'note'执行'set'或'get'函数,但唯一的错误是:'uncaughttypeerror:note.set不是函数'
如果我这样做:“var noteObj=collection.get(“0”);”
我得到了我需要的,但我仍然不能使用get或set。您应该将
urlRoot
设置为:
urlRoot: '/notes'
主干网将发现它需要向url添加id
。()
假设Memo.Models.Note
是一个模型而不是一个集合,上面的代码片段应该是这样的:
window.show_note = function(note_id) {
var note = new Memo.Models.Note({ id: note_id });
note.fetch({
success: function (model, response, options) {
var noteView = new Memo.Views.FullNote({
model: model
}, {flag: 0 });
$('.content').html(noteView.render().el);
}
});
};
注意传递给new Memo.Models.Note的参数。主干模型构造函数有两个参数:属性
和选项
(),而集合则采用模型
和选项
()。因此,您需要添加带有id
属性的哈希作为第一个参数
还要注意success
回调的函数签名。对于模型,success
回调包含三个参数:model
、response
和选项
()。您将对model
参数感兴趣,因为这是获取的主干模型<代码>响应
是原始响应数据
我希望我的假设是正确的,这就是你想要的答案。不要使用相同的名称
var note=…
和success:function(收集、记录、响应){
!但你到底有什么问题?这个-未捕获的类型错误:note.set不是函数在你的示例中没有note.set
,所以当它发生时?我只是删除它,因为它会产生问题。你可以添加这部分代码吗?