在Knockout中使用布尔值的attr绑定

时间:2012-07-03 03:18:30

标签: knockout.js knockout-2.0

我正在尝试从viewModel中的布尔值创建一个隐藏的表单字段。

    <tbody  data-bind="foreach: MediaFiles">
        <tr>
            <td>
                <input type="hidden" 
                        data-bind="attr: { value: MyBool }" />
            </td>
        </tr>
    </tbody>  

我需要根据视图模型中的内容将输入值设置为“true”或“false”。为清楚起见,省略了其他属性。

使用knockout的绑定功能实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:18)

data-bind="attr: { value: MyBool ? 'true' : 'false' }"

或MyBool是一个可观察的:

data-bind="attr: { value: MyBool() ? 'true' : 'false' }"

或者您可以使用computed observable

MyBool = ko.computed(function(){

   return this.someValue() ? 'true' : 'false';

}, this);