我正在构建订购咖啡的应用程序。在其中一条路线上,我有商店菜单,其中有一系列具有类型,大小,价格属性的饮料。举例来说,12盎司摩卡可能需要5.00美元。EmberJS中的表结构化数据
我在构建这些数据和显示它的时候遇到了困难,我在想,也许我并没有用“余烬的方式”来思考,因为我是一般的新开发人员和前端开发人员。
在我的路线中,我尝试了一些不同的事情。我有一个'商店饮料'的模型,返回商店的所有饮料。我尝试过使用它作为我的模型,并且能够将模型中的所有商店饮料都返回,但由于没有像{{if drink.type == 'Mocha'}}
这样的内置帮助程序,因此很难在格式中显示所有饮料。
我试过的另一件事是使用Ember.RSVP.hash来分隔路线中的饮料,然后在我的模板中安装Ember Truth Helpers来确定每个饮料的大小。
// routes/menu.js
model: function() {
// get the drinks for the current store, for now hardcode
const storeId = 4;
return Ember.RSVP.hash({
mochas: this.store.find(
'store-drink', {'store':storeId, 'type':'Mocha'}),
espressos: this.store.find(
'store-drink', {'store':storeId, 'type':'Espesso'}),
})
},
setupController: function(controller, model) {
controller.set('mochas', model.mochas);
controller.set('espressos', model.espressos);
}
//menu.hbs
{{#each drink in mochas}}
{{if (eq drink.type 'Mocha')}}
<h2>mochas</h2>
{{drink.type}}
{{/if}}
{{/each}}
不仅会收到在控制器我的“摩卡”对象返回的所有饮料,但我似乎无法得到的安装,如果帮手擦出火花。
有什么建议吗?也许我应该有一个完全不同的方法,或者我只是想念一些东西。
我在灰烬1.13
哎对不起,我在复制代码时犯了一个错误 - 处于变化中。其实它是'{{if(eq drink.type'Mocha')}}'根据文档,但我得到一个构建错误,说块不匹配 – awwester
@awwester你需要'#'。 –
好的,谢谢我有模板部分工作,并更好地理解助手与#和没有#之间的区别。任何想法为什么我的mochas对象不是只返回具有摩卡类型的饮品?我希望路线按类型过滤饮料,但由于某种原因,我的mochas对象正在返回所有饮料类型。 – awwester