繁体   English   中英

主干Mixins对实例的引用

[英]Backbone Mixins reference to instance

我对如何解决此问题感到困惑,并希望您提出意见。 我创建了一个库,该库以下划线与节点和浏览器的协作方式为模型。 这是代码的摘要版本: https : //gist.github.com/76121b90fb1ae392a4de

请注意,我正在使用Mixin覆盖某些类的sync方法。 在这种情况下,为Session类。 这是因为我们的某些端点不是轻松的,而是JSON RPC,因此我必须以不同的方式处理它们(请参阅第51行)。

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

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

非常感谢你!

路易斯

首先从如何使用Backbone中的mixins的角度出发,看一下以下解决方案: 在Backbone中执行视图mixins的正确方法 这样可以确保您在任何给定时间都正确无误。

其次,您要实例化一个新的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM