【发布时间】:2017-12-10 15:58:20
【问题描述】:
作为我的第一个 ember 项目,我正在开发一家餐厅的网站,我很难弄清楚如何处理菜单模型。
目前 models/menu.js 文件如下所示:
从“ember-data”导入 DS;
export default DS.Model.extend({
name: DS.attr('string'),
description: DS.attr('string'),
price: DS.attr('number'),
soyFree: DS.attr('string'),
glutenFree: DS.attr('string'),
addOnName: DS.attr('string'),
addOnPrice: DS.attr('number'),
type: DS.attr('string'),
isAppetizer: Ember.computed('type', function(){
return this.get('type') == 'Appetizer';
}),
isBreakfast: Ember.computed('type', function(){
return this.get('type') == 'Breakfast';
})
});
我的菜单模板文件是:
<div class="col-md-8 col-md-offset-2 text-center">
<h2>Menu</h2>
<h2 class="text-center">Appetizers</h2>
{{#each model as |menu|}}
{{#if menu.isAppetizer}}
<p>
<span><strong>{{menu.name}}</strong> - <em>{{menu.description}}</em> - {{menu.price}}</span>
{{#if session.isAuthenticated}}<button class="btn btn-danger" {{action "deleteMenuItem" menu}}>Delete</button>{{/if}}
</p>
{{/if}}
{{/each}}
<h2 class="text-center">Breakfast</h2>
{{#each model as |menu|}}
{{#if menu.isBreakfast}}
<p>
<span><strong>{{menu.name}}</strong> - <em>{{menu.description}}</em> - {{menu.price}}</span>
{{#if session.isAuthenticated}}<button class="btn btn-danger" {{action "deleteMenuItem" menu}}>Delete</button>{{/if}}
</p>
{{/if}}
{{/each}}
</div>
{{outlet}}
如您所见,我不得不重申每个部分(开胃菜/早餐)的所有菜单模型条目。有没有一种方法可以让我只能迭代每个 #each 块的特定项目类型。 即,
{{#each model.type == 'Appetizer'}}
Fill the appetizer section
{{/each}}
这是我的路线文件:
import Ember from 'ember';
export default Ember.Route.extend({
model(){
return this.store.findAll('menu');
}
});
【问题讨论】:
标签: javascript model-view-controller ember.js