在Ember.Select中选择值时更新值

时间:2014-02-13 01:36:44

标签: ember.js ember.select

我的模板中有一个Ember.Select和一张图片:

Difficulty: {{view Ember.Select id="id_diff" contentBinding="difficulties" optionValuePath="content.id" optionLabelPath="content.title"}}
<img src="(path)" />

Select填充了来自服务器的值;在控制器中:

difficulties: function() {
    return this.get('store').find('difficulty');
}.property()

和模型:

Gmcontrolpanel.Difficulty = DS.Model.extend({
    title: DS.attr('string'),
    description: DS.attr('string'),
    path: DS.attr('string')
});

那没关系;但我希望当从Ember.Select中选择一个难度时,相应的路径属性将被插入到img标签中 任何人都知道如何得到这个结果?

1 个答案:

答案 0 :(得分:2)

要做到这一点,我会设置几件事。

首先,更新你的Ember.Select以包含一个带有新属性的valueBinding:

{{view Ember.Select id="id_diff" contentBinding="difficulties" optionValuePath="content.id" optionLabelPath="content.title" valueBinding="selectedDificulty"}}

这会将您的选择视图绑定到模型对象。这意味着,在控制器上,我们现在可以在该字段中包含一个带有.observes的新函数:

updateImage : function(){
    this.set('fullPath', this.get('path') + this.get('selectedDificulty'));
}.observes('selectedDificulty');

最后,将图像路径更改为新创建的路径:

<img src="(fullPath)"/>