【问题标题】:backbone.js: Button in view that affects a different model in collection主干.js:视图中的按钮,影响集合中的不同模型
【发布时间】:2011-05-04 20:01:48
【问题描述】:

我刚刚开始使用backbone.js。到目前为止,我真的很喜欢它。

我有这样的事情:

  • 模型A
  • 型号B
  • 视图A
  • 视图B

ModelA 持有 ModelB 的集合

如何使用一个按钮构建 ModelB 的 ViewB,单击该按钮会更改集合中下一个 ModelB 实例的属性?

【问题讨论】:

    标签: javascript model-view-controller backbone.js


    【解决方案1】:
    var col = this.model.collection;
    var nextModel = col.at( col.indexOf(this.model) + 1)
    if(nextModel) nextModel.set({whatevar});
    

    您不需要跟踪父集合,主干会为您完成。 您还应该检查您是否在集合的末尾。

    【讨论】:

    • 爱它。对我来说,backbone.js 图片变得越来越清晰。它显然是由经过深思熟虑并在实际解决方案上对工作进行测试的人制作的。谢谢。
    • 这在文档中吗?我找不到它。
    • 这在代码中。你可以在这里阅读注释版本documentcloud.github.com/backbone/docs/backbone.html小警告如果你将你的模型添加到多个集合中,只会引用最后一个。
    【解决方案2】:

    我想我想通了。我会分享,看看其他人的想法,以便其他人受益。

    我只是将对父集合的引用传递给集合中的每个模型。

    在我的集合中,添加新实例时:

    var newModelBInstance = new ModelB( { id: "xxx", ParentCollection: this } );
    

    然后,在我的 ModelB 视图中:

    this.model.get("ParentCollection").at(this.model.sortValue + 1).set({ myAttr: false });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-17
      相关资源
      最近更新 更多