Javascript 在backbone.js中访问模型ID
我正在构建我的第一个主干应用程序,我对如何将ID传递到模型中有点困惑。当我实例化模型时,我像这样传入IDJavascript 在backbone.js中访问模型ID,javascript,backbone.js,Javascript,Backbone.js,我正在构建我的第一个主干应用程序,我对如何将ID传递到模型中有点困惑。当我实例化模型时,我像这样传入IDvar user=newusermodel(ID)。此时,id==1。初始化 模型中的方法。当我在url属性中使用该变量时,它是未定义的。为什么呢 // Filename: models/user/UserModel.js define([ 'underscore', 'backbone' ], function(_, Backbone) { var UserMod
var user=newusermodel(ID)代码>。此时,id==1
。初始化
模型中的方法。当我在url
属性中使用该变量时,它是未定义的。为什么呢
// Filename: models/user/UserModel.js
define([
'underscore',
'backbone'
], function(_, Backbone) {
var UserModel = Backbone.Model.extend({
initialize: function(id) {
console.log('modelID: ' + id); // Prints 'modelID: 1'
this.set({'id': id});
},
// Sends GET request to http://[domain]/users/view/undefined
url: 'users/view/' + this.id
});
return UserModel;
});
这一个有效:
var UserModel = Backbone.Model.extend({
initialize: function(id) {
console.log('modelID: ' + id); // Prints 'modelID: 1'
this.set({'id': id});
},
// Sends GET request to http://[domain]/users/view/undefined
url: function(){
return "/users/view/"+this.get("id");
}
});
console.log(new UserModel("10").url())
- A需要一个表示属性的对象作为其构造函数的第一个参数
构造函数/初始化新模型([属性],[选项])
创建模型实例时,可以传入将在模型上设置的属性的初始值。如果定义了初始化函数,则在创建模型时将调用该函数
- 设置将有助于构建URL
urlRootmodel.urlRoot或model.urlRoot()
如果需要,请指定一个urlRoot
使用集合外部的模型来启用默认url
函数根据模型id生成URL.“[urlRoot]/id”
- 属性应通过
model.get访问
因此,您可以将模型定义为
var UserModel = Backbone.Model.extend({
urlRoot: '/users/view'
});
并将其实例化为var user=newusermodel({id:id})代码>
它应该可以工作:)对,但是我如何让url
向用户/view/1发送GET请求?很抱歉,我错过了。你可以使用函数形式。
var userModel = new UserModel({id: 10});
userModel.fetch();