https://emberjs.jsbin.com/depoxiseve/edit?js,output
当观察控制器上的模型更改时,从索引控制器发送操作不会被索引路径处理。它抛出一个没有处理错误的动作。它将在应用程序路由中处理。为什么是这样?是因为索引路线还没有活跃吗?有没有办法让这个工作?
App.IndexRoute = Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue'];
},
actions: {
test: function() {
console.log('test');
}
}
});
App.IndexController = Ember.Controller.extend({
test: function() {
this.send('test');
}.observes('model')
});
答案 0 :(得分:0)
目前JSBin似乎已被打破,但我认为如果您希望操作冒泡,则需要在控制器上创建test
操作,然后return true
那个行动。因为this.send('test');
会将测试操作发送到this
,实际上是控制器。
所以:
App.IndexRoute = Ember.Route.extend({
model: function() {
return ['red', 'yellow', 'blue'];
},
actions: {
test: function() {
console.log('test');
}
}
});
App.IndexController = Ember.Controller.extend({
test: function() {
this.send('test');
}.observes('model'),
actions: {
test: function() {
return true;
}
}
});
P.S。你想做什么?如果可能的话,现在通常建议尽量避免使用观察员(看起来性能问题)。