0

我对如何解决这个问题感到困惑,并希望得到您的意见。我创建了一个模仿 underscore 使用节点和浏览器的方式的库。这是代码的摘要版本:https ://gist.github.com/76121b90fb1ae392a4de

请注意,我使用 Mixin 来覆盖某些类的同步方法。在这种情况下,会话类。这是因为我们的一些端点不是 restful 而是 JSON RPC,所以我必须以不同的方式处理它们(参见第 51 行)。

配置被传递给 MyLibrary 的实例化(第 86 行)。然后这些配置变量可以作为例如 window.mylibrary.area.jsproxi 访问。很好...问题是我无法找到一种优雅的方式来从 mixin.sync 方法中访问实例的相同属性(第 11 行和第 12 行就是这样的示例)。

有任何想法吗?我不知道如何在实例化后从库中获取 MyLibrary 的实例。而且我不能使用附加到窗口的名称,因为我不知道这个名称是什么。

非常感谢!

路易斯

4

1 回答 1

0

首先就如何在 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.jsproxy
于 2012-05-14T17:03:49.687 回答