Backbone.js模型属性常量 - 这是一个好习惯吗?

时间:2012-04-06 06:48:19

标签: backbone.js

我无法跟踪Model实例的属性。例如,我有声明如:

MyModel = Backbone.Model.extend({});

然后在我的观点中,我经常做类似的事情:

var someVal = this.model.get('someProperty');

我开始将View的字符串移动到常量中,将它们封装在一个对象中并将其作为第二个参数传递给View的构造函数,例如:

SchemaOptionsView = Backbone.View.extend(
    { /* Body of View here as usual */}, 
    {
        TEMPLATE: '#View-Template',
        INPUT_REQUIRED:'required'
    });

当我开始思考时,我可以通过模型解决两个问题:

MyModel = Backbone.Model.extend(
{ /* Body of Model here as usual */},
{
    PROPERTY_1 = 'p1',
    PROPERTY_2 = 'p2'
});

然后我可以使用常量来检索属性值:

var someVal = this.model.get(MyModel.PROPERTY_1);

这将允许我清楚地看到Model实例包含的属性,并且还将字符串值移动到适当位置的常量中。

我没有看过这个推荐或任何例子。我错过了什么吗?人们对这个想法有什么看法?

1 个答案:

答案 0 :(得分:2)

这解决了一个非问题。您的模型应该具有良好定义的属性 - 我们使用默认哈希来枚举模型的所有可用属性。这不仅提供了模型拥有的属性的目录,而且还提供了覆盖未经验证的输入的方法。