我无法跟踪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实例包含的属性,并且还将字符串值移动到适当位置的常量中。
我没有看过这个推荐或任何例子。我错过了什么吗?人们对这个想法有什么看法?
答案 0 :(得分:2)
这解决了一个非问题。您的模型应该具有良好定义的属性 - 我们使用默认哈希来枚举模型的所有可用属性。这不仅提供了模型拥有的属性的目录,而且还提供了覆盖未经验证的输入的方法。