1
我遇到了以下問題:我有一個控制器和我要篩選的模型,是這樣的: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) {
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
點擊正在工作。我想有一些關於視圖和控制器之間的關係我不明白,所以我很感激任何幫助。
謝謝!
那麼'{{product.addToCart}}'導致'沒有處理事件'product.addToCart',因爲它在模型上要求這個函數,而不是'ProductController',我假設。 –
我確實將邏輯移入模型中,但我不得不這樣稱呼它: 'action addToCart target =「product」' 這對我很有用。 –
拍攝,沒錯。我會更新我的答案,以免混淆其他人:-) –