我爲此問題簡化了我的應用程序。我確信,我剛剛開始對Ember有所瞭解,而且我還沒有像現在這樣有效地做事。Ember - 根據陣列中的值通過不同的模板渲染產品
我正在尋找一種方法來爲具有某些特徵的條目使用不同的模板。讓我來解釋:
我有一個嵌套的路線如下:
App.Router.map(function(){
this.resource('products', function() {
this.resource('product', { path: '/:product_id' });
});
});
和這樣的JSON文件:
{"product": [
{
"id": 1,
"title": "Bicycle",
"description": "A nice red bicycle that you can ride on.",
"display": "textonly"
},
{
"id": 2,
"title": "Bus",
"description": "A big bus that many people can ride on."
"display": "bigblocks"
},
{
"id": 3,
"title": "Airplane",
"description": "You can fly in this to get to your destination faster",
"display": "textonly"
}
]
}
正如你可以看到,我添加了一個屬性,我的JSON這決定了應該如何顯示產品條目。
現在,我的HTML模板看起來是這樣的:
<script type='text/x-handlebars' data-template-name='products'>
<div class='row'>
<div class='col-md-3'>
<div class='list-group'>
{{#each}}
{{#link-to 'product' this classNames='list-group-item'}}
{{title}}
{{/link-to}}
{{/each}}
</div>
</div>
<div class='col-sm-9'>
{{outlet}}
</div>
</div>
</script>
<script type='text/x-handlebars' data-template-name='product'>
<div class ='row'>
<div class ='col-md-9'>
<h4>{{title}}</h4>
<p>{{description}}</p>
</div>
</div>
</script>
我的應用程序目前呈現這樣的:
現在,我想要做的,是通過不同的模板(或視圖或組件或任何最適合該工作)渲染某些產品,以便當"display": "bigblocks"
產品呈現略有不同比當"display": "textonly"
,像這樣:
因此,實際上,我想有很多JSON條目,並基於JSON文件的「顯示」價值不同使它們。
我只是在尋找一個非常簡單的方法來做到這一點,也許是一個IF語句或類似的東西,只是這樣我才能得到我的頭如何做到這一點。
非常感謝,如果需要的話,並請詢問更多的信息:)
謝謝,我實際上結束了這個方法,但奧倫也工作:) – user1525612