使用特定值检查绑定attr车把帮助器ember.js

时间:2014-06-10 21:19:12

标签: ember.js handlebars.js

所以我基本上需要从选择框中选择一个特定的值。

所以我想知道如何让{{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>

我知道我们可以这样做,但我不想绕过创建不必要的变量。

我正在从模型中检索这个,所以只需检查该模型字段的值并在选择框中选择该特定字段(如我的第一段代码中所示)就很棒。

1 个答案:

答案 0 :(得分:0)

编辑:我忘记了Handlebars助手如何处理属性。所以我以前的答案是行不通的。但是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')
});