我正在使用Backbone和Parse来建立一个调查网站。我模仿了待办事项列表示例向页面添加问题。与待办事项列表示例一样,我有"createOnEnter"和"addOne"。获取 id 对我来说很重要,因为我需要将问题的 id 设置为与 Parse 中的 id 相同。
addOne: function(question) {
alert(question.get("content"));
alert(question.id);
var view = new QuestionView({model: question});
this.$("#questions").append(view.render().el);
},
createOnEnter: function(e) {
if (e.keyCode != 13) {
return;
}
this.survey.create({
content: $("#new-question").val(),
type: $("#choose-type").val(),
order: this.survey.nextOrder(),
user: Parse.User.current(),
ACL: new Parse.ACL(Parse.User.current())
}, {wait: true});
$("#new-question").val('');
}
所以alert(question.get("content"))确实会给我预期的内容,但alert(question.id)显示未定义。但是我相信保存到 Parse 的每个条目都会得到一个唯一的 id,所以我不明白为什么 question.id 是未定义的。更糟糕的是,alert(question.get("cid"))也是未定义的.....这真的让我感到困惑。多谢!!!
ids
由服务器给出(当您fetch
并且服务器返回id
字段时)。如果在创建模型时手动添加id
字段,也可以添加它 - 但关键是这不是自动完成的。 id
是服务器上资源的唯一标识符。
当您在前端创建问题时,您需要使用唯一 id Backbone 创建谁被称为 cid
. http://backbonejs.org/#Model-cid