1

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

我注意到当删除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-触发观察者。但是,按照建议移动gettoinit是行不通的。在这种情况下被init称为早点还是什么?

4

1 回答 1

0

有点晚了,但是...

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

Ember.js - 使用 Handlebars 助手检测子视图是否已呈现

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

于 2014-01-08T02:03:45.670 回答