设置默认(选中)选项Ember 1.13.11

时间:2016-01-29 01:28:13

标签: ember.js

排序版本:

为什么这样做:<option disabled={{option.isSelected}}>

但不是这样:<option selected={{option.isSelected}}>

长版:

这更多的是关于我学习Ember如何工作而不是让这个工作,因为已经有很多工作的例子。

我正在尝试在选择菜单中设置默认选定选项。看起来有不同的方法,推荐的方法正在改变。

我在Ember 1.13.11工作,但希望与Ember 2.0兼容。

我没有找到与selected属性不涉及模板助手的Ember 2.0兼容方法。我可以在控制器上创建一个true / false值作为属性。我知道我做得对,因为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 个答案:

答案 0 :(得分:0)

正如@blessenm指出的那样。它确实有效。

我认为无法判断它是否有效,因为浏览器正在记忆并选择上次访问该页面时的值。