2015-02-11 98 views
1

嘿所以我的問題可能很簡單,因爲我是全新的ember和ember-cli,從我的理解中,您只需編輯包含html,IE的應用程序HBS模板。 app/templates/settings.hbs編輯帶有餘燼和餘燼的handlebars模板

然而,我的問題是,當我編輯這些文件中的一個,並重新啓動整個堆棧,沒有任何變化反映 - 此外我基本上只是試圖創建一些已經很小的變化已經通過輸入如果有條件找到控制器名稱和顯示內容是否匹配什麼即時尋找創建堆棧,

例如

{{#if controller.name == "settings"}} 
// diff lis 
{else} 
// normal lis 
{#endif} 

最重要的這裏,任何改變我讓所有的HBS模板似乎沒有被反映出來,任何想法爲什麼?

回答

0

把手沒有以您發佈的形式存在平等幫手。 (所有的內置的助手的列表,請參閱this list。)

相反,你需要做的,使你的代碼的工作是你的控制器上創建一個屬性是什麼:

IsNameSettings: function(){ 
    return this.get('model.name') === 'settings'; 
}.property('model.name'); 

,改變你的模板使用此屬性(請注意,你也有{{/endif}}需要被改爲{{/if}} [見上面的鏈接):

{{#if controller.IsNameSettings}} 
// diff lis 
{else} 
// normal lis 
{/if} 

看能否改變你的車把模板有效語法,我描述了我的結果後, n當您正在等待現場重新加載時,頁面實時更新。確認保存這些更改後,您會看到來自ember-cli的輸出表明構建成功。檢查輸出線沿線的終端:

version: 0.1.12 
Livereload server on port 35729 
Serving on http://0.0.0.0:4200/ 

Build successful - 8891ms. 
1

除了@Oren答案,如果你使用的餘燼1.10你可以把車把子表達式的優勢,寫自己的eq幫手可能在使用更多的情況。例如:

Ember.Handlebars.registerBoundHelper('eq', function(left, right) { 
    return left === right; 
}); 

,然後在模板

{{#if (eq name "settings") }} 
    // diff lis 
{{else}} 
    // normal lis 
{{/if}} 
// ... 
{{#if (eq something otherstuff) }} 
    // show this 
{{else}} 
    // show that 
{{/if}} 

現場樣品http://emberjs.jsbin.com/mezoxiqavi/1/edit