如何在没有.get的情况下获得骨干模型属性

Ada*_*ser 15 javascript coffeescript backbone.js

在骨干中,似乎我必须通过获得模型属性 model.get('att_name')

我想让它们像我在对象中得到任何公共字段一样: model.att_name

任何人都可以想办法解决这个问题吗?

例如:在python世界中,我会在模型上覆盖getattr,如下所示:

def getattr(self, att):
   return self.get(att)
Run Code Online (Sandbox Code Playgroud)

哦,我正在使用CoffeeScript

ggo*_*zad 18

您使用get()和/ set()defaults获取/设置的模型属性存储在instance.attributes属性中.

另外,这些都是将要传递到并从返回的属性sync()以及toJSON().所以,当你fetch(),save()等等,只有什么是存储在instance.attributes被传承下去.

当然,没有什么能阻止你拥有像instance.foo对象那样的普通属性.如果你想将它们作为其他属性处理并传递给它们fetch(),save()你可以通过parse()在模型上提供一个默认不做任何事情的自定义来实现.也就是说,如果你真的认为绝对必要,你应该这样做,只要遵守Backbone惯例.