2014-02-15 57 views

回答

1

那麼Ember.Select組件需要選擇一個值,因此當您切換出該類別時,sort字段會被覆蓋。一個簡單的解決方案是有兩個排序字段,sortAccomodationssortEvents以及兩個Ember.Selects,您根據所選類別切換模板。

查看http://emberjs.jsbin.com/kafod/3/作爲一個工作示例。

{{#if categoryIsAccommodations}} 
    <br />Sort by {{view Ember.Select content=sortOptions 
    optionValuePath="content.key" 
    optionLabelPath="content.text" 
    value=sortAccomodations}} 
{{/if}} 
{{#if categoryIsEvents}} 
    <br />Sort by {{view Ember.Select content=sortOptions 
    optionValuePath="content.key" 
    optionLabelPath="content.text" 
    value=sortEvents}} 
{{/if}} 

一個解決方案 '排序' 值:

{{view Ember.Select content=sortOptions 
    optionValuePath="content.key" 
    optionLabelPath="content.text" 
    value=sort}} 

控制器:

saveSorts: (-> 
    this.set('sortAccommodations', this.get('sort')) if this.get('category') is 'accommodations' 
    this.set('sortEvents', this.get('sort')) if this.get('category') is 'events' 
).observes('sort') 

    categoryDidChange: (-> 
    this.set('sort', this.get('sortAccommodations')) if this.get('category') is 'accommodations' 
    this.set('sort', this.get('sortEvents')) if this.get('category') is 'events' 
).observes('category') 

http://emberjs.jsbin.com/kafod/5/

+0

這不是我能夠用兩個 「排序」 值,因爲它包含在查詢字符串中。你能想到另一種解決方法嗎? – elsurudo

+0

當然,您可以在切換類別時「保存」相應的排序值,並在切回時「重新加載」它們。看到http://emberjs.jsbin.com/kafod/5/ – chopper

+0

這絕對是到達那裏,但仍然有一個我找不到的錯誤。首次加載JSBin時,請執行以下操作:1.按「名稱升序」排序2.將類別更改爲「事件」3.將類別更改回「住宿」。頁面現在處於不一致的狀態,其中Ember.Select的值與「排序」不匹配。嗯 – elsurudo