2016-01-29 24 views
0

排序版本:設置默認(選擇)的選項灰燼11年1月13日

爲什麼這項工作:<option disabled={{option.isSelected}}>

但並不是這樣:<option selected={{option.isSelected}}>

龍版本:

這更多的是關於我學習Ember如何工作,而不是讓它工作,因爲已經有很多實例。

我想在選擇菜單中設置默認選擇的選項。看起來有這樣做的不同方式,推薦的方法正在改變。

我正在Ember 1.13.11工作,但想要兼容Ember 2.0。

我還沒有找到與Ember 2.0兼容的方法,它不涉及selected屬性的模板助手。我可以創建一個真/假值作爲控制器上的屬性。我知道我做得很對,因爲disabled正常工作。爲什麼這隻會失敗select

模板調用:

{{version-details item=version status=version.status}} 

組件控制器:

import Ember from 'ember'; 

export default Ember.Component.extend({ 
    tagName: 'select', 
    options: Ember.computed('status', function() { 
    var statusOptions = ['beta', 'current', 'future', 'retired-beta', 'retired', 'unknown']; 
    var selected = this.get('status'); 
    var optionsData = []; 
    statusOptions.forEach(function(status){ 
     var isSelected = (selected == status); 
     optionsData.push({ status: status, isSelected: isSelected }); 
    }) 
    return optionsData; 
    }), 
    setAction: '', 
}); 

組件:

{{#each options as |option|}} 
    <option selected={{option.isSelected}}>{{option.status}}</option> 
{{/each}} 
+1

適合我。我通過的狀態成爲選定的值。 http://emberjs.jsbin.com/lezulo/2/edit?html,js,output – blessenm

+1

我花了很多時間撞到了燼挑選,現在只需要使用x選擇https://github.com/ thefrontside/emberx選。 –

+0

@blessenm唉!感謝yoooooou。我想知道我是否遇到了所選默認和瀏覽器之間的某種衝突,並且有助於記住我上次查看過的內容。給它一個硬刷新,現在它工作。 –

回答

0

由於@blessenm指出。它確實有效。

我想不出是因爲瀏覽器記住並選擇了上次訪問該頁面時的值而無法正常工作。