【发布时间】:2026-01-16 10:45:01
【问题描述】:
排序版本:
为什么会这样:<option disabled={{option.isSelected}}>
但不是这个:<option selected={{option.isSelected}}>
加长版:
这更多是关于我学习 Ember 的工作原理,而不是让它工作,因为已经有很多工作示例。
我正在尝试在选择菜单中设置默认选定选项。看起来有不同的方法可以做到这一点,并且推荐的方法正在改变。
我正在使用 Ember 1.13.11,但希望与 Ember 2.0 兼容。
我还没有找到不涉及 selected 属性的模板助手的 Ember 2.0 兼容方法。我可以创建一个真/假值作为控制器上的属性。我知道我做得对,因为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}}
【问题讨论】:
-
为我工作。我传入的状态成为选择的值。 emberjs.jsbin.com/lezulo/2/edit?html,js,output
-
我花了很多时间敲打 ember 的 select,现在总是使用 x-select github.com/thefrontside/emberx-select。
-
@blessenm 啊!谢谢你。我想知道我是否在选择的默认值和浏览器之间遇到了某种冲突,这有助于记住我上次查看 from 时选择的内容。给它一个硬刷新,现在它正在工作。
标签: ember.js