Ember 观察者/动作语法差异
Ember observer / action syntax differences
我已经阅读了有关操作散列的文档,但在我能找到的每个示例中,人们在使用观察者时都没有使用 action:
。
喜欢这个:
https://www.airpair.com/ember.js/posts/top-mistakes-ember-rails#6-properties-and-observes
他们喜欢扩展定义下的动作名称方向,就像属性的定义方式一样,并且在 属性 中定义了一个匿名函数。
App.PostRoute = Ember.Route.extend({
actions: {
expand: function() {
this.controller.set('isExpanded', true);
}.observes('aProperty')
}
});
对
App.PostRoute = Ember.Route.extend({
expand: function() {
this.controller.set('isExpanded', true);
}.observes('aProperty)
});
我的问题是这两种方式有什么区别?
不用actions:
不就冒泡了吗
如果不使用actions:
,它不冒泡到路由吗?
最重要的是,这对使用观察者意味着什么?
http://emberjs.com/api/classes/Ember.ActionHandler.html#property_actions
动作和观察者是两个完全不同的东西。
动作处理通过 {{action}}
从模板调用的动作,以及通过 send
从 JavaScript 调用的动作。是的,它们必须在 actions
散列中。不然找不到,更别提冒泡了。
观察者就是观察者,你可以把它们放在任何你想观察的地方。
在您的示例中,您给出了带有 observes
的操作。它的用例是什么?你想完成什么?好像既一个动作又是一个观察者,这是我以前从未见过的模式,似乎不太有用。