Javascript Ember.js过滤内容并使用按钮操作
我遇到了以下问题:我有一个控制器,我想过滤模型,比如:Javascript Ember.js过滤内容并使用按钮操作,javascript,ember.js,Javascript,Ember.js,我遇到了以下问题:我有一个控制器,我想过滤模型,比如: App.ProductsController = Ember.ArrayController.extend({ itemController: 'product', filteredContent: function(query) { var query = this.get('query') var products = this.get('content').filter(function(item) {
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}}
{{#filteredContent中的每个产品}
...
{{product.name}
...
添加到购物车
{{/每个}}
至少在循环方面。操作addToCart
不起作用,在按下按钮时导致错误未处理事件“addToCart”
。即使它是在ProductController
中定义的
现在有一个有趣的部分:如果我不使用过滤结果,而只是在我的视图中使用控制器中的每个产品,addToCart
单击就可以了。我想我不明白视图和控制器之间的关系,所以我非常感谢您的帮助
谢谢 使用
{{{items}中的每个项}
语法。因此,您必须绑定到product.name
。如果addToCart在ProductController中,而不是ProductsController中,则需要将动作绑定编写为action addToCart target=“product”
好的{{{action product.addToCart}}
导致没有处理事件“product.addToCart”
,因为它在模型上请求该函数,我想不是ProductController
。我确实将逻辑移到了模型中,但我不得不这样称呼它:action addToCart target=“product”
,这对我很有效。没错。我将更新我的答案,以免混淆其他人:-)