升级模型(backbone.js)
问题描述:
现在我对所有用户都有一个通用的用户模型。当用户记录它时,它们是用户类型1或用户类型2.这两种类型需要完全不同的模型来表示它们,但仍包含通用用户模型中的所有内容。升级模型(backbone.js)
我的目标是通过将状态从当前用户模型传递到Type1或Type2模型来升级每种类型用户的用户模型。
(在CoffeeScript中)
class Type1 extends User
#add super set of methods
#user arrives
user = new User
#after logging in
state = user.toJSON()
#do I need to unbind/delete the current user model?
user = new Type1(state)
这是实现这一目标的最佳方式是什么?
谢谢!
答
你可以这样做。你也可以只在attributes
复制:
userCopy = new Type1
userCopy.attributes = user.attributes
delete user
注意,不管采用哪种方法,你就会失去事件绑定等更安全,更JavaScript的-Y的做法是只延长就地user
额外方法,而不是完全有一个Type1
类。 (当然,这样做有缺点,比如失去从这些方法调用super
的能力。请参阅我对类似问题的回答here。)
同类问题:http://stackoverflow.com/questions/7394992 /可任您延长初始化的模型 –