Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ember.js Ember-从视图中找不到控制器操作_Ember.js - Fatal编程技术网

Ember.js Ember-从视图中找不到控制器操作

Ember.js Ember-从视图中找不到控制器操作,ember.js,Ember.js,好的,阅读了所有更新的指南,仍然无法理解为什么没有从视图中调用我的控制器操作。我的余烬应用程序在application.Handlebar中插入了导航视图,如下所示: {{view App.NavigationView}} {{outlet}} App.NavigationController = Ember.ObjectController.extend({ navAction: function() { console.log('navAction'); } }); 导航

好的,阅读了所有更新的指南,仍然无法理解为什么没有从视图中调用我的控制器操作。我的余烬应用程序在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');
  }
});
导航模板:

<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