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:如何在处理模型属性时捕捉输入错误?_Javascript_Backbone.js - Fatal编程技术网

Javascript Backbone.js:如何在处理模型属性时捕捉输入错误?

Javascript Backbone.js:如何在处理模型属性时捕捉输入错误?,javascript,backbone.js,Javascript,Backbone.js,我是JS开发新手,我发现自己花了很多精力来修复模型属性中的错误,尤其是model.get的用法。虽然我的单元测试确实捕捉到了其中的大部分,但在编写代码时,修复和记住名称仍然很烦人。有什么东西可以提醒我这些打字错误吗?我认为测试是最好的方法 包括验证/拼写检查代码,最终将成为生产应用程序的一部分,这是一个坏主意。如果您键入的变量名称不正确,那么应该通过开发时测试而不是运行时验证来发现它。我认为测试是最好的方法 包括验证/拼写检查代码,最终将成为生产应用程序的一部分,这是一个坏主意。如果您键入的变量

我是JS开发新手,我发现自己花了很多精力来修复模型属性中的错误,尤其是model.get的用法。虽然我的单元测试确实捕捉到了其中的大部分,但在编写代码时,修复和记住名称仍然很烦人。有什么东西可以提醒我这些打字错误吗?

我认为测试是最好的方法


包括验证/拼写检查代码,最终将成为生产应用程序的一部分,这是一个坏主意。如果您键入的变量名称不正确,那么应该通过开发时测试而不是运行时验证来发现它。

我认为测试是最好的方法


包括验证/拼写检查代码,最终将成为生产应用程序的一部分,这是一个坏主意。如果您键入的变量名称不正确-它应该由开发时测试发现,而不是一些运行时验证。

我们使用的一种策略是定义一个散列,并将其用于setter和getter

var ATTRS = {
    attr1: 'attr1',
    attr2:  'attr2'
}

model.set (ATTRS.attr1, 'attr1_val');
model.get (ATTRS.attr1);
对于某些情况,例如,由于JS不允许在散列的左侧使用变量,因此您将无法使用该变量。但在大多数情况下,它有助于消除最简单的打字错误

{ ATTRS.attr: 'def_val' }  // this will give an error

希望这有助于

我们使用的一种策略是定义一个散列并将其用于setter和getter

var ATTRS = {
    attr1: 'attr1',
    attr2:  'attr2'
}

model.set (ATTRS.attr1, 'attr1_val');
model.get (ATTRS.attr1);
对于某些情况,例如,由于JS不允许在散列的左侧使用变量,因此您将无法使用该变量。但在大多数情况下,它有助于消除最简单的打字错误

{ ATTRS.attr: 'def_val' }  // this will give an error

希望有此帮助

首先,安装插件\u super:

现在创建一个抽象模型:

YourAbstractModel = Backbone.Model.extend({
    get : function(attr){
        if( !_.has(this.defaults, attr) ){
            throw 'Invalid attribute: ' + attr;
        } 

        return this._super(attr);
    }        
});

您的模型应该扩展抽象而不是主干。模型应该设置默认值。

首先,安装插件\u super:

现在创建一个抽象模型:

YourAbstractModel = Backbone.Model.extend({
    get : function(attr){
        if( !_.has(this.defaults, attr) ){
            throw 'Invalid attribute: ' + attr;
        } 

        return this._super(attr);
    }        
});
您的模型应该扩展抽象而不是主干.model,并且您应该设置默认值