2011-09-07 59 views
1

我有一个模板结合如下访问视图模型性能

<tbody id ="mytemplatetbody" 
     data-bind="template: {name: 'myTemplate', foreach: Items}"> 
</tbody> 

该行模板都有一个状态字段,其值可以是1或2或3。有此屏幕上的三个复选框,并根据什么复选框(es)用户选择,行应该是可见的。

这就是我所做的:为viewModel添加了三个可观察的属性,并将它们绑定到三个复选框。我可以用下列方式显示这些值:

<span data-bind="text: viewModel.checkBox1Selected()"></span> 

问:我不能把任何if语句在我的例如像这样的模板......

{{if viewModel.checkBos1Selected() }} 

...所以什么最好的方式或反正我可以完成我上面描述的?

回答

4

做这种事情的一种常见方法是创建dependentObservable来表示您的过滤行。然后,将您的模板绑定到这个dependentObservable上。只要您的某个可观察过滤器发生更改,那么过滤的行将被重新评估。

这里有一个例子:http://jsfiddle.net/rniemeyer/BXeCb/

你当然可以做过滤然而最适合您的应用程序。我用一个observableArray来检查绑定来保存我的过滤器,但是你可以很容易地在你的视图模型上使用三种可观察的属性。

+0

谢谢你给我指路。 – unlimitedsprint

+0

过滤工作的基础上复选框选择完美,我有另一个过滤我需要额外做相同的数据。当用户登录到这个应用程序时,应该显示的唯一行是由他创建的行(我们已经通过db中的列创建),我该怎么做? – unlimitedsprint

+0

这样的事情如何:http://jsfiddle.net/rniemeyer/Yrxfe/? –