所以我基本上需要从选择框中选择一个特定的值。
所以我想知道如何让{{bind-attr}}
表现得像这样:
<select id="research_status" class="form-control">
<option value=""></option>
<option value="finalized" {{bind-attr selected a_variable="finalized"}}>Finalized</option>
<option value="in progress" {{bind-attr selected a_variable="in progress"}}>In progress</option>
</select>
我在文档中找不到这个(虽然我没有太多考虑过)。但如果还有另一种方法可以让我知道更简单或更容易合作,请告诉我。
我不想最终做这样的事情
<select id="research_status" class="form-control">
<option value=""></option>
<option value="finalized" {{bind-attr selected=isFinalized}}>Finalized</option>
<option value="in progress" {{bind-attr selected=isInProgress}}>In progress</option>
</select>
我知道我们可以这样做,但我不想绕过创建不必要的变量。
我正在从模型中检索这个,所以只需检查该模型字段的值并在选择框中选择该特定字段(如我的第一段代码中所示)就很棒。
答案 0 :(得分:0)
bind-attr
帮助程序不提供这种功能,并且可能不同,因为它无法轻易修改。我相信你最好的选择是重新创建bind-attr
助手,只使用自定义语法。您可以找到代码here。
同样,我认为你最好只宣布一个控制器属性。每个属性只需要一行:
App.MyController = Ember.Controller.extend({
isFinalized: Ember.computed.equal('model.state', 'finalized'),
isInProgress: Ember.computed.equal('model.state', 'in progress')
});