我只需要将参数传递给特定路线的余烬动作。
{{#if isSelected 'filters' filter.id}}class="active"{{/if}}
我在app.js文件中的动作路线定义如下所示
App.FooRoute = Ember.Route.extend({
model: (...),
actions : {
(...),
'isSelected' : function(table,obj) {
return this.store.find(table,obj).get('selected');
}
}
});
但我得到了Uncaught Error: Assertion Failed: You must pass exactly one argument to the if helper
我不想为此编写帮助程序,因为代码组织得更好......
怎么做?
答案 0 :(得分:1)
Uncaught Error: Assertion Failed: You must pass exactly one argument to the if helper
这将是一个很好的功能,想到
修改强> 我用这行代码安排了我的需求。
Ember.ObjectController.extend({
actions : {
selectItem : function(table,item){
this.store.find(table,item.id).then(function(obj){
obj.set('selected',!obj.get('selected'));
console.log(obj.get('selected'));
obj.save();
});
},
selectAll : function(table){
this.store.find(table).then(function(obj){
obj.forEach(function(obj){
obj.set('selected',true);
obj.save();
});
});
}
}
});
和我的车把(它的一部分)
{{#each obj in model.objs}}
<dd {{bind-attr class="obj.selected:active"}}><a {{action "selectItem" 'filter' obj}}>{{obj.name}}</a></dd>
{{/each}}
答案 1 :(得分:0)
尝试使用对象:
{{#if isSelected {table: 'filters', id: filter.id} }}class="active"{{/if}}