我有一个模板绑定如下
<tbody id ="mytemplatetbody"
data-bind="template: {name: 'myTemplate', foreach: Items}">
</tbody>
模板中的行有一个状态字段,其值可以是1或2或3.此屏幕上有三个复选框,根据用户选择的复选框,行应该是可见的。
这就是我所做的:为viewModel添加了三个可观察属性,并将它们绑定到三个复选框。我可以按如下方式显示这些值:
<span data-bind="text: viewModel.checkBox1Selected()"></span>
问题:我无法在我的模板中添加任何if语句,例如像......
{{if viewModel.checkBos1Selected() }}
...那么最好的方法是什么,或者无论如何我可以完成我上面描述的内容?
答案 0 :(得分:4)
执行此类操作的常用方法是创建dependentObservable来表示已过滤的行。然后,将模板与此dependentObservable绑定。只要您的某个可观察过滤器发生更改,就会重新评估过滤后的行。
以下是一个示例:http://jsfiddle.net/rniemeyer/BXeCb/
您当然可以进行过滤,但最适合您的应用。我使用针对observableArray的checked绑定来保存我的过滤器,但您可以轻松地使用在视图模型上使用三个可观察属性的方法。