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
Backbone.js 在主干模型中使用标志,但不作为属性(保存)_Backbone.js - Fatal编程技术网

Backbone.js 在主干模型中使用标志,但不作为属性(保存)

Backbone.js 在主干模型中使用标志,但不作为属性(保存),backbone.js,Backbone.js,因此,我试图实现的是,当用户想要编辑/查看一个项目(模型)时,我将它们发送到一个URL,创建一个新的模型实例并调用。在加载相关视图并将其交给新模型之前获取它 出于各种原因,我需要知道用户是否正在编辑或查看项目(模型),因此我的第一次尝试是: app.Models.Quote = Backbone.Model.extend({ idAttribute: 'Number', initialize: function() { this.editMode = fals

因此,我试图实现的是,当用户想要编辑/查看一个项目(模型)时,我将它们发送到一个URL,创建一个新的模型实例并调用。在加载相关视图并将其交给新模型之前获取它

出于各种原因,我需要知道用户是否正在编辑或查看项目(模型),因此我的第一次尝试是:

app.Models.Quote = Backbone.Model.extend({

    idAttribute: 'Number',

    initialize: function() {
        this.editMode = false;  
    },

    url: function() {
        return app.Settings.apiUrl() + '/quotes/' + this.id;
    }

});
因此,在视图/编辑视图的各个位置,我可以执行以下操作:

if(this.model.editMode){ //foo }
但是,这似乎根本不起作用,即未找到editMode(未定义)


对于实现这一点,人们的一般解决方案/建议是什么?

尝试将editMode添加为模型的属性。您现在可以这样做了。model.editMode,在您的模型中,您可以将editMode称为this.editMode

app.Models.Quote = Backbone.Model.extend({

    idAttribute: 'Number',

    editMode: false, // this initializes the value to false   

    initialize: function() {
        //this.editMode = false;  
    },

    url: function() {
        return app.Settings.apiUrl() + '/quotes/' + this.id;
    }

});

这是一个快速的示例,说明此属性正在工作:

通过添加以下内容确保这是您的视图实例

var self = this;
或使用地下方法

_.bindAll(this,""); 
视图初始化方法