我遇到了以下问题:我有一个控制器,我想过滤模型,如:
App.ProductsController = Ember.ArrayController.extend({
itemController: 'product',
filteredContent: function(query) {
var query = this.get('query')
var products = this.get('content').filter(function(item) {
return true // Condition goes here
})
return products
}.property('query')
})
我认为哪种方法正常:
{{#each product in filteredContent}}
...
<h1>{{product.name}}</h1>
...
<button {{action addToCart}}>Add to cart</button>
{{/each}}
至少就循环而言。操作addToCart
不起作用,并在按下按钮时导致错误Nothing handled the event 'addToCart'
。即使它是在ProductController
。
现在,这是一个有趣的部分:如果我不在我的视图中使用过滤结果,而只是使用each product in controller
,则addToCart
点击工作正常。我想有一些我不理解的视图和控制器之间的关系,所以我感谢任何帮助。
谢谢!
答案 0 :(得分:0)
使用{{#each item in items}}
语法does not change the binding scope。因此,您已绑定到product.name
。如果addToCart位于ProductController而不是ProductsController中,则需要将操作绑定编写为action addToCart target="product"
。