2013-11-24 43 views
1

我有要求根據我的模型屬性渲染模板。如何根據模型參數渲染組件

我stratergy是如果手柄塊助手吧模板,像這樣來使用自定義:

{{#ifequals type 'cars'}} 
    {{cars-component}} 
{{/ifequals}} 
{{#ifequals type 'planes'}} 
    {{planes-component}} 
{{/ifequals} 

,但我不能創建一個解決由模板的助手傳遞的參數塊幫手。

如果我使用Handlebars.registerHandlebars,它將解析變量的變量名稱insted。

我需要這樣做的原因是因爲它是插件框架的一部分。

回答

0

選項塊(特殊if語句)在ember handlebars助手中無法正常工作。 https://github.com/emberjs/ember.js/issues/2237

isCar: Ember.computed.equals('type', 'cars') 
isPlane: Ember.computed.equals('type', 'planes') 

{{#if isCar}} 
    {{cars-component}} 
{{/if}} 
{{#if isPlan}} 
    {{planes-component}} 
{{/if}} 

它看起來很像你能做到這一點,但出了問題,如指出在GitHub的問題上面。

Ember.Handlebars.helper('iff', function(value,property, options) { 
    if(value === property){ 
    return options.fn.apply(); 
    } else { 
    return options.inverse.apply(); 
    } 
}); 

http://emberjs.jsbin.com/UhOWeWiJ/1/edit

http://emberjs.jsbin.com/UhOWeWiJ/2/edit

當您嘗試和實施這樣的事情和價值觀真正改變你將獲得一個綁定的塊錯誤

https://github.com/emberjs/ember.js/issues/2237

未捕獲您可以「T使用的appendChild渲染過程

http://emberjs.jsbin.com/UhOWeWiJ/3/edit http://emberjs.jsbin.com/UhOWeWiJ/3/edit

+0

好地獄,我發誓這沒有工作以外,我什麼都不記得了發生的事情,將顯示它的工作,也許這是一個性質在模型上而不是模型上,但我剛剛嘗試過的例子。 – Kingpin2k

+0

他們都工作。無論如何,現在感到高興。 – Kingpin2k

+0

根據什麼wagenet的評論,它更好地使用計算的屬性。 – Billybonks