【问题标题】:Observing childViews.@each to implement Select2 with Ember观察 childViews.@each 以使用 Ember 实现 Select2
【发布时间】:2014-01-08 10:03:45
【问题描述】:

我正在尝试编写一个与 Ember 一起使用的 Select2View。主要的困难是 Select2 从option 元素中复制数据,因此我们必须在更改它们时通知它。通过将 OptionView 设为非虚拟,然后在 Select2View 中观察 childViews.@each.label,我已经让它大部分工作了。

我注意到当 a 删除在观察者中调用 this.get('childViews') 的调试打印时,它停止工作。有了这个电话,一切都按预期工作。没有它,即使子视图的标签发生变化,也永远不会调用观察者。这是一个 JSFiddle 演示:http://jsfiddle.net/sYCaS/6/

我在这里做错了什么,还是这是一个错误?我希望能够观察我所有子视图的属性,并在它们发生变化时得到通知。

编辑:看起来这种行为是预期的,并在此处描述:http://emberjs.com/blog/2013/08/29/ember-1-0-rc8.html#toc_unconsumed-computed-properties-do-not-trigger-observers。但是,按照建议将get 移动到init 不起作用。在这种情况下是否会提前调用init 或其他什么?

【问题讨论】:

    标签: ember.js


    【解决方案1】:

    有点晚了,但是……

    我使用了这篇 SO 帖子中的车把助手:

    Ember.js - Using a Handlebars helper to detect that a subview has rendered

    它允许您从模板触发对视图的操作。因此,通过将其放置在您的子视图渲染块中,您将知道它的渲染时间,您可以应用您的 select2()

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多