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 的操作。它的用例是什么?你想完成什么?好像一个动作又是一个观察者,这是我以前从未见过的模式,似乎不太有用。