升级模型(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) 

这是实现这一目标的最佳方式是什么?

谢谢!

+0

同类问题:http://stackoverflow.com/questions/7394992 /可任您延长初始化的模型 –

你可以这样做。你也可以只在attributes复制:

userCopy = new Type1 
userCopy.attributes = user.attributes 
delete user 

注意,不管采用哪种方法,你就会失去事件绑定等更安全,更JavaScript的-Y的做法是只延长就地user额外方法,而不是完全有一个Type1类。 (当然,这样做有缺点,比如失去从这些方法调用super的能力。请参阅我对类似问题的回答here。)