Ember Power Select - 标签/价值

时间:2016-08-09 19:50:34

标签: ember.js web-component

我似乎无法理解如何执行以下操作来查看docs for" ember power select"。

我有一位模特用户:

export default Model.extend({
    "state": attr('string')
});

在数据库中存储的值为: NY 表示状态

我还有以下数据加载到余辉电源选择选项中:

stateList: [
    {
        label: 'New Jersey',
        value: 'NJ'
    },
    {
        label: 'New York',
        value: 'NY'
    },
]

以下车把代码将加载状态并显示它们。您可以搜索并选择州:

{{#power-select 
    options=stateList
    searchField="label"
    selected=state
    onchange=(action (mut state))
    as |state|
}}
    {{state.label}}
{{/power-select}}

问题...在选择'纽约' 时,我希望'州' 的存储值要' NY'

现在它只是存储整个对象。我理解通过' onchange' 我可以设置价值,但我真的不明白你如何设置价值' NY' 并选择它?

我已经尝试过了

this.set('state',selection.value)

但我认为它正在寻找对象的索引,但我只是想通过纽约'而不是一个完整的对象......这可能吗?

1 个答案:

答案 0 :(得分:1)

回答你的问题是否定的(AFAIK)。但是你可以使用computed属性来实现这一点。

  

组件js代码

import Ember from 'ember';

export default Ember.Component.extend({
  stateList: [{'label': 'New Jersey','value': 'NJ'},{ 'label': 'New York','value': 'NY'}],
  state:'NY',
  selectedState: Ember.computed('state', function(){    
    return this.get('stateList').findBy('value',this.get('state'));
  }),

  actions:{
    setSelectedState(selectedVal){      
      this.set('state',selectedVal.value);
    }
  }
});
  

组件hbs代码

{{#power-select 
    options=stateList
    searchField="label"
    selected=selectedState
    onchange=(action 'setSelectedState')
    as |state|
}}
    {{state.label}}
{{/power-select}}
{{yield}}

这是 Ember-Twiddle