2012-05-15 83 views
0

如果你看看我的簡短歷史的問題,我似乎建立了一個簡單的問題,我應該已經找出了自己的答案,在浪費人們的時間之前建立了聲譽。有了這一個,雖然我真的住了,我將不勝感激一些幫助,所以這裏去...動態綁定<option>裏面Ember.Select

  1. 我有一個多選擇列表(最終將使用一個jQuery插件,使之相當),這將是根據一些用戶標準進行填充(在我的例子中,選項是硬編碼的,但一個例子是13歲,在我的遊戲商店中應該看不到額定的「成熟」遊戲)。
  2. 根據一些搜索標準(假設我們正在按發佈商,特定國家/地區的可用遊戲等進行搜索)。每個多選項目的計數應隨着搜索條件的更改和計數的更改而更新。 (在我的例子中,我只是改變了定時器的值)

這裏是小提琴,http://jsfiddle.net/AMPBb/1/

好像有幾種方法,我可以解決這個問題,就像一個countBinding我SelectListItem用displayText計算屬性,但我實際上無法完成一個工作示例。具有更改計數的第一個選項是非常詭異的,但演示了我期望的功能。我之前沒有遇到過這樣的例子,所以我很感興趣看看解決這個問題的最佳方法是什麼。

在此先感謝您的幫助。

回答

1

我會在你的App.SelectListItemApp.SelectListItem創建一個計算的屬性label其定義如下,請參閱http://jsfiddle.net/pangratz666/Y6467/

label: function() { 
    var text = this.get('text'); 
    var value = this.get('value'); 
    return '%@ (%@)'.fmt(text, value); 
}.property('text', 'value').cacheable() 

另外請注意,您必須創建一個到的ValueBinding你的「App.CountModel。*」 。

關於命名約定還有一件事:具體實例應該在lowerCase中命名,所以它的命名爲App.countModel。見http://www.emberist.com/2012/04/09/naming-conventions.html

+0

再次感謝@pangratz! – mlienau