我是JS开发的新手,我发现自己花费的不仅仅是修复模型属性中由拼写错误引起的错误,特别是model.get()的用法。虽然我的单元测试确实捕获了大部分内容,但在编码时修复并记住名称仍然很烦人。有什么东西可以警告我这些错别字吗?
答案 0 :(得分:3)
我们使用的一种策略是定义哈希并将它们用于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
希望这个帮助
答案 1 :(得分:1)
首先,安装插件_super:
https://github.com/lukasolson/Backbone-Super
现在创建一个抽象模型:
YourAbstractModel = Backbone.Model.extend({
get : function(attr){
if( !_.has(this.defaults, attr) ){
throw 'Invalid attribute: ' + attr;
}
return this._super(attr);
}
});
你的模型应该扩展抽象而不是Backbone.Model(你应该设置默认值)。
答案 2 :(得分:0)
我认为测试是最好的方法。
包含验证/拼写检查代码,最终将成为生产应用程序的一部分,这是一个坏主意。如果您错误地键入变量的名称 - 应该通过开发时测试发现它,而不是某些运行时验证。