2011-09-17 96 views
1

現在我對所有用戶都有一個通用的用戶模型。當用戶記錄它時,它們是用戶類型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 /可任您延長初始化的模型 –

回答

1

你可以這樣做。你也可以只在attributes複製:

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

注意,不管採用哪種方法,你就會失去事件綁定等更安全,更JavaScript的-Y的做法是隻延長就地user額外方法,而不是完全有一個Type1類。 (當然,這樣做有缺點,比如失去從這些方法調用super的能力。請參閱我對類似問題的回答here。)