为什么Ember.js / EAK会自动生成ApplicationController而不是使用我的显式ApplicationController?

时间:2014-01-17 23:46:32

标签: javascript ember.js ecmascript-6 ember-app-kit

我正在使用Ember App Kit(EAK)。

当我加载索引页时,Ember Inspector / Chrome开发工具控制台显示此行:

*generated -> controller:application Object {fullName: "controller:application"}*

但是我明确地创建了一个应用程序控制器,这个Ember应用程序显然不知道(因为它自动生成ApplicationController)。

我正在尝试在我的显式应用程序控制器上调用title属性,并将其显示在我的应用程序模板中。

我做错了什么?模板中的{{title}}不产生任何效果。

(我怀疑它与EAK通过ES6 Module Transpiler使用ECMAScript 6模块的方式有关。)


/site/app/templates/application.hbs

{{title}}

{{outlet}}

/site/app/controllers/application.js

var ApplicationController = Ember.Controller.extend({
    title: 'hello world'
});

export default ApplicationController;

2 个答案:

答案 0 :(得分:2)

有时会帮助您重启grunt服务器。

答案 1 :(得分:1)

您的代码对我来说似乎没问题。您使用哪种Ember.js和app-kit版本?

我试图复制你的问题,但一切都运作良好。你能复制一下我的场景并确认它对你有用吗?

我做了什么:

$ git clone git@github.com:stefanpenner/ember-app-kit.git
$ cd ember-app-kit
$ npm install

进行了这些代码更改(我的git diff):

diff --git a/app/controllers/application.js b/app/controllers/application.js
new file mode 100644
index 0000000..9d34ee0
--- /dev/null
+++ b/app/controllers/application.js
@@ -0,0 +1,5 @@
+var ApplicationController = Em.Controller.extend({
+    title: 'hello world'
+});
+
+export default ApplicationController;
diff --git a/app/templates/application.hbs b/app/templates/application.hbs
index d08c11f..a373a71 100644
--- a/app/templates/application.hbs
+++ b/app/templates/application.hbs
@@ -1,3 +1,4 @@
 <h2 id='title'>Welcome to Ember.js</h2>
+{{title}}

 {{outlet}}

最后跑了

$ grunt server

当我打开localhost:8000时,一切正常(“hello world”已呈现)。你能试一试吗?