emberjs中控制器与路由的区别

时间:2017-04-07 03:18:04

标签: ember.js

自从我开始使用ember js以来,这对我来说非常困惑。 我正在使用ember js 2.11(如我的package.json "ember-cli": "2.11.1"中所示)

我试图从我的组件发出onClick动作进行路由,我收到错误“在生成的控制器中找不到名为'getDetails'的动作”,即使我的路线中有一个名为getDetails的动作。

我已经读过,使用ember 2.0+控制器已被弃用,并且路由是出于同样的目的。

请澄清。

1 个答案:

答案 0 :(得分:3)

  1. 控制器尚未弃用。使用它们as documented,一旦它们被弃用,将会有一个清晰无痛的升级路径。
  2. 当您从而不是模板的模板发送{{action "getDetails"}}之类的操作时,控制器是默认的操作处理程序。错误中的短语generated controller表示您没有创建一个,因此Ember通过创建匿名控制器为您完成了工作。根据定义,它没有任何动作,属性或任何东西。如果要处理操作,请创建一个控制器。
  3. 或者,如果您真的想要处理路线(或其中一条父路线)上的操作,请使用ember-route-action-helper插件。
  4. {li> "ember-cli": "2.11.1"package.json仅告诉您Ember CLI的版本(命令行界面),Ember版本在同一文件中为"ember-source",或"ember" } bower.json

    提示:仔细阅读指南! :)