2014-12-03 105 views
0

當在{{#each}}中使用Ember.select時,如果我在一個選擇中選擇選項,它將顯示它在所有其他選擇中被選中。以下是代碼和屏幕截圖。在循環中選擇,選擇單個,顯示多個選擇

代碼模板:

{在model.feeddefinitions {#each飼料}}

   {{#if isEditing}} 
        <td> {{view Ember.Select 
        content=model.sections 
        optionValuePath="content.id" 
        optionLabelPath="content.name" 
        prompt="Select Section" 
        value=selectedSection}}</td> 
        <td> 
         <button class="btn btn-primary btn-sm" {{action 'add_section_to_feed' model feed.id}}>Add</button> 
        </td> 
       {{/if}} 
      </tr> 

     {{/each}} 
+0

將代碼放在餘燼JS斌,我會幫助你。 – Ajey 2014-12-04 07:14:16

+0

http://jsbin.com/celefokoxi/1/edit我儘可能地添加了代碼。 – plzdontkillme 2014-12-05 19:35:57

回答

1

因爲selectedSection的上下文是不是個別飼料您遇到這個問題。

如果每個進料的「selectedSection」屬性,你可以給「值= feed.selectedSection」

否則,您必須定義一個itemController爲個別飼料和它定義selectedSection財產。

+0

謝謝,你可以點我如何定義itemController爲個別飼料? – plzdontkillme 2014-12-03 15:52:55

+0

我試過feed.selectedSection,它修復了視覺的東西,但在控制器我沒有得到的值。我應該如何獲得價值。 – plzdontkillme 2014-12-05 00:29:04

+0

@plzdontkillme model.feeddefinitions將具有正確的數據。即每個進料將具有selectedSection屬性,這將保持所述相應的選定值 – 2014-12-08 11:50:35

0

問題是,所有的Ember.Select都共享一個控制器,它們都綁定到相同的控制器value=selectedSection相同的屬性。

你需要做的是每個Ember.Select都有一個單獨的控制器。你需要一個新的控制器爲每個項目,爲此目的,你可以使用render幫手。

實施例:http://emberjs.jsbin.com/xahevi/1/edit?html,js,console,output

0

你選擇的所有綁定到相同的屬性。

你要麼需要將值/選擇綁定到模型屬性或到控制器屬性的每個項目。你可以有each輔助包裝每個型號的控制器如下:

{{#each feed in model.feeddefinitions itemController='feed-definition'}} 
    ... 
{{/each}} 
0

基本上你需要做的是什麼 -

申報項目控制器{{#each itemController=DesignPhotoController}}而循環。 ,以便每個單獨的對象將有一個單獨的控制器。

而且在DesignPhotoController添加

selectedSection: null, 

,並通過this.get("selectedSection")控制器訪問它。

這裏是 - FIDDLE