我是这个EmberJS环境的新手,我想问一下,你如何向控制器功能发送参数?我只想过滤我得到的模型。但我不知道如何将参数传递给控制器。谁能告诉我怎么样?任何意见/建议将不胜感激
Html文件:
<script type="text/x-handlebars" data-template-name="favorite/items">
<ul>
{{#each i in "filteredItems" }}
<li>{{i.name}}</li>
{{/each}}
</ul>
</script>
JS档案:
App.FavoriteItemsController = Ember.ArrayController.extend({
filteredItems: function (id) {
return this.get('model').filterProperty('favoriteId',id);
}.property('model.@each.favoriteId')
});
答案 0 :(得分:1)
Handlebars是无逻辑的,您不会将属性传递给计算属性。诀窍是使计算属性依赖于另一个可以改变计算属性的属性。
<script type="text/x-handlebars" data-template-name="favorite/items">
<ul>
{{#each i in filteredItems }}
<li>{{i.name}}</li>
{{/each}}
</ul>
</script>
JS档案:
App.FavoriteItemsController = Ember.ArrayController.extend({
filteredParam: 1,
filteredItems: function () {
var filteredParam = this.get('filteredParam');
return this.get('model').filterBy('favoriteId',filteredParam);
}.property('@each.favoriteId', 'filteredParam')
});
当你更改filteredParam
时,ember会将filteredItems
视为脏,并重新计算它。