我已经阅读了有关操作哈希的文档,但在我能找到的每个示例中,当使用观察者时,人们会离开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')
}
});
VS
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
答案 0 :(得分:1)
行动和观察者是完全不同的两件事。
操作处理通过{{action}}
从模板调用的操作,以及通过send
从JavaScript调用的操作。是的,它们必须是actions
散列。否则,它们将不会被发现,更不用说冒泡了。
观察者只是观察者,你可以将它们放在任何想要观察的地方。
在您的示例中,您使用observes
进行了操作。那是什么用例?你想要完成什么?它似乎是两者一个动作和一个观察者,这是我以前从未见过的模式,它看起来并没有太大用处。