Ember.js Ember-从视图中找不到控制器操作
好的,阅读了所有更新的指南,仍然无法理解为什么没有从视图中调用我的控制器操作。我的余烬应用程序在application.Handlebar中插入了导航视图,如下所示:Ember.js Ember-从视图中找不到控制器操作,ember.js,Ember.js,好的,阅读了所有更新的指南,仍然无法理解为什么没有从视图中调用我的控制器操作。我的余烬应用程序在application.Handlebar中插入了导航视图,如下所示: {{view App.NavigationView}} {{outlet}} App.NavigationController = Ember.ObjectController.extend({ navAction: function() { console.log('navAction'); } }); 导航
{{view App.NavigationView}}
{{outlet}}
App.NavigationController = Ember.ObjectController.extend({
navAction: function() {
console.log('navAction');
}
});
导航控制器如下所示:
{{view App.NavigationView}}
{{outlet}}
App.NavigationController = Ember.ObjectController.extend({
navAction: function() {
console.log('navAction');
}
});
导航模板:
<ul class="nav">
<li>{{#linkTo "dashboard"}}Dashboard{{/linkTo}}</li>
<li>{{#linkTo "contacts"}}Contacts{{/linkTo}}</li>
<li>{{#linkTo "campaigns"}}Campaigns{{/linkTo}}</li>
<li>{{#linkTo "transactions"}}Transactions{{/linkTo}}</li>
<li><a {{action "navAction"}}>navAction</a></li>
</ul>
- {{{#链接到“仪表板”}仪表板{{/linkTo}
- {{{linkTo“contacts”}}联系人{{/linkTo}}
- {{{链接到“活动”}活动{{/linkTo}
- {{{linkTo“transactions”}}事务{{/linkTo}
- 导航
有什么想法吗?提前感谢。在{{action}}helper中指定要告诉的目标选项,哪个对象应该接收方法调用。例如: {{action“navAction”target=“controller”} 如果未指定目标选项,则它将指向通常设置为路由器的controller.target属性。但是,可以像这样将目标设置为控制器本身 App.NavigationController=Ember.ObjectController.extend({ }}) 您可以参考以下要点,其中详细解释了{{action}}helper:
也许可以看看下面的帖子:
它谈到了使用一个名为{{linkTo}}的新帮助程序,我认为第一个错误是使用
{{view App.NavigationView}
,因为NavigationController没有被注入其中
尝试使用新的{{render}}辅助程序,如{{render navigation}。它将同时查找NavigationView、NavigationController和模板“navigation”,并应连接在一起
然后,{{action}}助手现在按照文档中的说明工作:
下面是一个简短的例子,(只是错过了{render}的使用)
在这里,我在当前路由中定义了操作,但是如果在控制器中定义它(取消注释),这将由控制器处理感谢您的建议;不幸的是,在init中设置目标不起作用。我正在使用最新的版本,如果这有任何影响。嗯,我非常确定,现在,默认操作的目标是控制器……如果不起作用,这应该是一个bug