我正在研究Ember.js 我有一个选择元素,设置为发送值" onchange"我没有任何问题收到价值.. 但我想将每个选项保存到一个数组中并在标签中即时显示 这是我的template.hbs
<div class="panel-body">
<div class="form-group">
<select name="services" id="services" class="form-control" onchange={{action 'setValue' value="target.value"}}>
<option> Select Services </option>
{{#each services as |service|}}
<option value="{{service.name}}">{{service.name}}</option>
{{/each}}
</select>
</div>
<div class="form-group">
{{selectedService}}
{{#each selectedService as |selection index|}}
<span class="label label-primary">{{index}} {{selection}}</span>
{{/each}}
</div>
</div>
这是我的控制器
actions: {
setValue(ser){
var selectedService = [];
this.set('selectedService', ser);
selectedService.pushObject(ser);
console.log(selectedService);
}
我试图记录&#34; selectedService [1]&#34;并选择两个项目,但它不起作用,它继续覆盖第一个项目:(
答案 0 :(得分:2)
您的案例的原因是您经常将selectedService
设置为新数组。而不是那样;你需要获得控制器的selectedService
并推送它。我的意思是:
export default Ember.Controller.extend({
selectedService: [],
actions: {
setValue(ser){
this.get('selectedService').pushObject(ser);
}
}
});
您为控制器初始化selectedService
一次,并且可以不断推送到同一阵列。
请检查以下twiddle,我猜这很接近你想要的。