2015-04-02 59 views
5

我正在做一個插件。我嘗試使用部分。在我的addon/templates/components/form.hbs我得到{{partial "pane"}}。我_pane.hbs在插件/模板文件夾,但燼不能找到它:Ember CLI找不到部分

未捕獲的錯誤:斷言失敗:無法找到部分名爲「窗格」。

我也試圖把_pane.hbs在插件/模板/組件,但沒有運氣。我應該把它放在哪裏才能被撿起來?

回答

7

正如here所提到的,Ember CLI中的所有內容都被破解。使用短劃線而不是下劃線。

此外,我認爲partial幫手解決從templates目錄開始。如果你想在components目錄中存儲一個部分,你可能必須明確說明。

所以,你的文件應該被命名爲:

addon/templates/components/-pane.hbs 

,您的電話應該是這樣的:

{{partial 'components/pane'}} 
+0

對於將來的讀者......「部分助手解決了模板目錄中的起點」這是關鍵,助手不會從原來的位置向下鑽取,因此您必須假定它是'root'是模板文件夾寫道路。 – sheriffderek 2015-08-23 16:17:48

0

如果你想要一個應用程序來訪問你的插件的東西,然後他們需要在app目錄不是插件目錄。每個插件的應用程序目錄都與用戶應用程序目錄合併。

通常你所有的邏輯都在addon目錄中,你只需導入然後導出應用程序目錄中的每個項目(應用程序目錄非常笨,只是包含導出列表)不知道這怎麼可能?

你可以嘗試addon/templates/_partial.hbs然後將它導入到app/templates/_partial.js中,但是我不確定這是否可行。如果這不起作用,在app/templates/_partial.hbs中工作

2

addon/templates下的模板沒有被包含在標準的Ember構建鏈中,也沒有被標準的Ember解析器找到。這就是爲什麼您必須手動導入模板並將它們分配爲組件中的佈局。

如果你想在你的插件中使用一個部分,你必須把它放在app/templates之下。這是不可取的,因爲不僅部分不會被你的插件模板預編譯,而且會污染根應用程序的模板名稱空間。

這可能會通過即將發佈的ember-cli版本解決,插件將會很快發生重大變化。