【问题标题】:Upgrading a Model (backbone.js)升级模型 (backbone.js)
【发布时间】:2011-09-17 22:24:11
【问题描述】:

现在我有一个适用于所有用户的通用用户模型。当用户登录时,会确定他们是用户类型 1 还是用户类型 2。这两种类型需要完全不同的模型来表示它们,但仍然包含通用用户模型中的所有内容。

我的目标是通过将当前用户模型的状态传递到 Type1 或 Type2 模型来升级每种用户类型的用户模型。

(在咖啡脚本中)

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)

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

谢谢!

【问题讨论】:

标签: javascript backbone.js coffeescript


【解决方案1】:

你可以这样做。你也可以直接复制attributes:

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

请注意,使用任何一种方法,您都将丢失事件绑定等。更安全、更符合 JavaScript 的方法是使用其他方法就地扩展 user,而不是使用 Type1 类全部。 (当然,这样做也有缺点,例如无法从这些方法中调用super。请参阅我对类似问题here 的回答。)

【讨论】:

    猜你喜欢
    • 2012-02-12
    • 2012-02-15
    • 2014-08-11
    • 2013-07-27
    • 2011-10-31
    • 1970-01-01
    • 2012-10-11
    • 2019-12-18
    • 1970-01-01
    相关资源
    最近更新 更多