我对如何解决这个问题感到困惑,并希望得到您的意见。我已经创建了一个模仿下划线的节点和浏览器工作方式的库。下面是代码的汇总版本:https://gist.github.com/76121b90fb1ae392a4de
请注意,我正在使用Mixin来覆盖某些类的sync方法。在本例中,是Session类。这是因为我们的一些端点不是restful的,而是JSON RPC,所以我必须以不同的方式处理它们(参见51行)。
配置被传递给MyLibrary的实例化(第86行)。然后,这些配置变量可以作为例如window.mylibrary.area.jsproxi进行访问。很好..。问题是,我找不到一种优雅的方法来从mixin.sync方法中访问实例的相同属性(第11和12行就是这样的例子)。
有什么想法吗?我不知道如何在实例化之后从库中获取MyLibrary的实例。ANd我不能使用附加到window的名称,因为我不知道这个名称是什么。
非常感谢!
路易斯
发布于 2012-05-15 01:03:50
首先,关于如何在Backbone中使用mixins,看看下面的解决方案:Proper way of doing view mixins in Backbone。这将确保您对此的引用在任何给定时间都是正确的。
其次,您正在实例化一个新的MyLibrary,它是一个模型
new MyLibrary({
"area": {
"ajax_synchronization_token": "sometoken",
"jsproxy": "proxytoken"
},
"user": {
"key": "somekey",
"signature": "somesignature"
}
});并期望像这样访问这些值:
this.area.ajax_synchronization_token,
this.area.jsproxy而您真正应该尝试访问这些值的方式是
var area = this.get('area'); // it's a model after all
area.ajax_synchronization_token
area.jsproxyhttps://stackoverflow.com/questions/10587386
复制相似问题