我剛剛開始重構我們的Ember應用程序以使用豆莢,以便我們的目錄/文件結構更易於管理。同時我已經升級灰燼-CLI所以我用下面的配置下運行:Ember-Cli重構使用豆莢
Ember : 1.8.1
Ember Data : 1.0.0-beta.12
Handlebars : 1.3.0
jQuery : 1.11.2
我已經更新了的environment.js包括以下
modulePrefix: 'emberjs',
podModulePrefix: 'emberjs/pods',
我也試圖將其設置爲'app/pod'並且只是'豆莢',但沒有運氣。
的目錄結構如下:
emberjs/
app/
controllers - original location, still has some original controllers here for other parts of the system
pods/
job/
parts/
index/
controller.js
route.js
template.hbs
edit/
controller.js
route.js
template.hbs
的應用建立好的,如果我在emberjs.js看文件,我可以看到豆莢控制器,路線和模板
的各種定義例如
define('emberjs/pods/job/parts/index/controller', ['exports', 'ember'], function (exports, Ember) {
define('emberjs/pods/job/parts/index/route', ['exports', 'ember'], function (exports, Ember) {
define('emberjs/pods/job/parts/index/template', ['exports', 'ember'], function (exports, Ember) {
所以有些東西正在識別豆莢結構。
但是,當我嘗試訪問此路線時出現問題。我在控制檯中收到一條警告消息,並沒有顯示任何內容 - 基本上它說它可以找到模板abd,它看起來像使用生成的控制器。
generated -> controller:parts Object {fullName: "controller:parts"}
vendor-ver-1423651170000.js:28585 Could not find "parts" template or view. Nothing will be rendered Object {fullName: "template:parts"}
vendor-ver-1423651170000.js:28585 generated -> controller:parts.index Object {fullName: "controller:parts.index"}
vendor-ver-1423651170000.js:28585 Could not find "parts.index" template or view. Nothing will be rendered Object {fullName: "template:parts.index"}
vendor-ver-1423651170000.js:28585 Transitioned into 'jobs.job.parts.index'
如果我看在灰燼檢查在Chrome中我看到,在路線部分它顯示部件/指數有部分/指數控制器部件/指數和模板零件/指數的路線。 這是我應該期待的嗎? 我不確定Ember在使用pod時如何解析各個部分。
爲了測試這個,我把模板的一個副本放在templates/parts目錄中並重新加載它。這次它找到了模板並渲染了它,但缺少數據 - 可能是由於它使用了默認路由和控制器。
有沒有人知道我做錯了什麼。我錯過了某個步驟,或配置不正確?
你的路由文件是什麼樣的? – jmurphyau 2015-04-10 20:24:19
在'job'和'job.parts'路由中,嘗試添加一個'template.hbs'文件,其中只有'{{outlet}}'。 – jax 2015-05-12 12:14:02
看一看這個 - http://www.programwitherik.com/ember-pods/ - ,可能會有所幫助 – 2015-06-14 08:54:16