在我的应用程序中,我有一个包含2个字段的模板文件(比如name1 / name2)。 根据路线中的一个参数(“首选项”),我想在屏幕上显示Recipe1或Recipe2。 例如:如果首选项是veg,我应该显示Recipe1否则Recipe2。 我试过这个如下,但它没有用。
export default Ember.Route.extend({
beforeModel(){
if (preference==='veg'){
console.log("Inside Veg..");
Ember.$("#Recipe2").attr("type","hidden");
}
else {
console.log("Inside Non Veg..");
Ember.$("#Recipe1").attr("type","hidden");
}
我所看到的是它进入if / else循环但是ember。$ statements没有任何区别。请帮忙。
答案 0 :(得分:1)
首先,你不应该在Ember.$
钩子内写beforeModel
。那是错的。当beforeModel
挂钩被调用时,DOM将不会准备就绪。我更喜欢你创建组件并将preference
属性传递给组件,如果检查以hbs显示它
创建my-receipe
组件并将其包含在template.hbs
{{my-receipe preference=preference }}
MY-receipe.hbs
{{#if isVeg}}
<input type="text" id="Recipe1" />
{{else}}
<input type="text" id="Recipe2" />
{{/if}}
MY-receipe.js
创建isVeg computed属性,如果首选项为veg,则返回true。
export default Ember.Component.extend({
isVeg: Ember.computed('preference', function() {
return Ember.isEqual(this.get('preference'), 'veg');
})
})