我有一個Rails應用程序,我在前端使用Ember。我想在目錄結構中將與花費有關的文件向下移動一層,但是當我這樣做時,模板不再呈現。如何使用ember-rails gem爲我的HandlebarsJS模板指定替代目錄?
在平原,香草,工作的應用程序的版本,我的目錄結構是:
./app/
assets/
javascripts
application.js
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
有:application.js中
//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require ember-app
App = Ember.Application.create();
和:ember- app.js
//= require ./store
//= require_tree ./models
//= require_tree ./controllers
//= require_tree ./views
//= require_tree ./helpers
//= require_tree ./templates
//= require ./router
//= require_tree ./routes
一切工作正常。但是,我想將ember-app文件和所有ember javascript代碼向下移動一層,而當我這樣做時,模板不會呈現。 (應用程序的部件使用灰燼,而不是整個應用程序,我試圖通過資產管道設置兩個獨立的路徑。)
期望結構是:
./app/
assets/
javascripts
application.js
embro/
ember-app.js
routes.js
store.js
models/
controllers/
routes/
templates/
views/
用:的application.js(修訂: '需要餘燼應用內' 變成了 '要求embro /餘燼應用內')
//= require jquery
//= require jquery_ujs
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require embro/ember-app
App = Ember.Application.create();
012(餘燼-app.js是未經修正)。
正如我所說,移動後,模板內容都不會出現在屏幕上。屏幕上或控制檯中沒有錯誤,只是一個空的應用程序。
當我在控制檯中檢查Ember.TEMPLATES時,列出了所有預期的模板。此外,如果我在合適的rails視圖中將所需的內容放在x-handlebars模板中,則內容將成功呈現,就像它與原始目錄結構一樣。
例如,在應用程序/視圖/首頁/ index.html的....
<script type="text/x-handlebars" data-template-name="application">
<h1>hello</h1>
{{ outlet }}
</script>
<script type="text/x-handlebars" data-template-name="index">
<h1>this is the index</h1>
</script>
...我們是好着呢。
但如果我離開rails視圖爲空,就像我對原始結構做的那樣,這是不行的。
想知道如果可能的話,ember-rails gem需要把手模板出現在app/assets/javascripts/templates中,並且如果有方法可以覆蓋它的話。該文檔提到嚮應用程序配置塊添加templates_root選項,我想知道這是否是關鍵。我已經玩了一下,沒有運氣。
任何想法?
UPDATE:
恐怕我沒有與templates_root選項的運氣。作爲一個實驗,我嘗試構建一個新的簡單的rails應用程序,並使用ember-rails bootstrap生成器啓動並運行它。一切都很好,但是如果我試圖簡單地更改模板文件夾(例如app/assets/javascripts/templates - > app/assets/javascripts/temple)的名稱,並對sprockets includes和config文件進行相應更改,我得到了同樣的結果。
templates_root選項有可能被破壞了嗎?
我使用Ruby 1.9.3,Rails的3.2.11,燼護欄0.10.0
任何指針我應該在餘燼/餘燼護欄/車把源代碼在哪裏?已經開始探索。
謝謝!
即使templates_root仍然只能將您限制到一個名稱空間。我想要做同樣的事情,但也有一些像admin.js和admin/templates部分。 – ootoovak 2013-04-07 06:09:56