我刚刚将我的应用程序从最新的Ember 1.13(没有任何弃用)更新为Ember 2.4。现在我遇到的问题是某些动作不再冒泡了。我有以下设置:
路由/ foo.js
export default Ember.Route.extend({
actions:
doSomething: function() {
console.log("action triggered!");
}
});
模板/ foo.hbs
{{render "foo.bar"}}
模板/富/ bar.hbs
<div {{action "doSomething"}}>Test</div>
控制器/富/ bar.js
export default Ember.Controller.extend({
});
使用Ember 1.13,当我点击Test
时,doSomething
中的操作routes/foo.js
被触发。现在这不再发生了。如果我向doSomething
添加操作controllers/foo/bar.js
,则会触发此操作,但它不会冒泡到基础根。我检查了所有关于新ember版本的博客帖子,但我发现没有任何暗示行动的冒泡被改变以及如何修复它。任何帮助都会很棒!
答案 0 :(得分:0)
基于 http://marinasol.com/panoramas/Courtyard_Pano_Auto/_auto/flash/scene/pano_1/0_2_1_3.jpg ,渲染助手只能访问自己的控制器,而不能访问父控制器。但是您可以使用路径中的render
方法渲染到指定的插座并获得所需的行为。
App.FooRoute = Ember.Route.extend({
renderTemplate: function() {
this.render();
this.render('bar', {
into: 'foo',
outlet: 'bar',
});
},
actions: {
doSomething: function() {
alert('Done');
}
}
});
<script type="text/x-handlebars" data-template-name="foo">
{{outlet 'bar'}}
</script>
<script type="text/x-handlebars" data-template-name="bar">
<button {{action 'doSomething'}}>Do Something</button>
</script>
<强> render documentation 强>