Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/469.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在backbone.js中访问模型ID_Javascript_Backbone.js - Fatal编程技术网

Javascript 在backbone.js中访问模型ID

Javascript 在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

我正在构建我的第一个主干应用程序,我对如何将ID传递到模型中有点困惑。当我实例化模型时,我像这样传入ID
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();