2014-03-03 22 views
0

在我的餘燼申請我在模板中定義這樣的選擇元素:Ember.Select雙向的編輯形式結合

{{view Ember.Select 
    content=greetings 
    optionValuePath="content.id" 
    optionLabelPath="content.code" 
    value=selectedGreeting 
    selection=selectedGreeting 
    prompt="Please choose"}} 

控制器此頁面(共享的形式和控制器,用於創建和編輯表單)看起來是這樣的:

greetings: [ 
    {code: "Mr.", id: 1}, 
    {code: "Mrs.", id: 2} 
], 
selectedGreeting: null, 
actions: { 
    save: function(){ 
     var person = this.get('model'); 
     if (person == null || person.id == undefined) 
     { 
      // create mode 
      var greeting = this.selectedGreeting.id; 
      // .... 
      var newPerson = this.get('store').createRecord('person',{ 
       greeting: greeting, 
       // .. 
      }); 
      newPerson.save(); 
      this.transitionToRoute('index'); 
     } 
     else 
     { 
      // edit mode 
      person.set('greeting', this.selectedGreeting.id); 
      person.save(); 
     } 
    } 
} 

這創造了一個人的時候,卻打開已有一個選擇框顯示PROMT而不是保存的值(我真的有jQuery來做到這一點時,完美的作品)? 。

除此之外,我認爲必須有一個更簡單的方法來更新現有的模型與選擇值在其他分支,因爲其他屬性得到自動修改。

任何建議,將不勝感激,Ember的文檔不幸的是在這種情況下沒有什麼幫助。

回答

1

Ember.Select視圖有不少怪癖。事實上,如果我沒有記錯的話,我在Github上看到一個問題,就是把整個事情都改寫了。現在,我假設prompt屬性優先於selection屬性。爲了解決這個問題,我會在模板中使用一個條件。

{{#if model}} 
    {{view Ember.Select ... value=selectedGreeting}} 
{{else}} 
    {{view Ember.Select ... prompt='Please Choose'}} 
{{/if}} 

而且,你的第二個問題,如果我理解正確的話,你應該能夠只使用selection=model.greeting的選擇對模型價值屬性綁定。如果你使用上面的模板,你可以這樣做,它只適用於前者而不適用於後者。

+0

不幸的是,這並沒有解決它,#if模型的條件工作,但選擇不會在下拉列表中設置。我試過選擇了Grey和model.greeting,沒有效果。 – Ralf

+0

我剛剛爲Ember.Select寫了一個小封裝組件,並且我使用'value'而不是'selection'。你只使用'value'而不是'selection'? – GJK

+0

我得到了它今天上的使用: '{{視圖Ember.Select 含量=問候 optionValuePath = 「content.id」 optionLabelPath = 「content.code」 值= model.greeting }}」 該作品以兩種方式 - 從模型加載數據並將數據保存到模型中。請相應地編輯您的答案,並將其標記爲已接受。 – Ralf

1

我得到了它使用固定:

{{view Ember.Select 
    content=greetings 
    optionValuePath="content.id" 
    optionLabelPath="content.code" 
    value=model.greeting 
    prompt="Please select" 
}} 

這個工作在兩個方面 - 從模型加載數據和將數據保存到模型。提示不會影響我所經歷的價值。