如何在Knockout中传递可见绑定的值?

时间:2012-11-07 15:27:42

标签: asp.net-mvc-3 knockout.js

我正在尝试对淘汰视图模型进行一些重构。首先从模型对象中分离出一些视图逻辑。

我想知道在使用可见绑定时是否有办法传回值?

我目前的情况我在一个Foreach循环中。我想将Knockout迭代的对象传回给我在可见绑定上调用的方法:

data-bind="visible: SomeMethod"

data-bind="visible: SomeMethod(object)"

该方法显然是一个ko.computed函数,我试图将值传回给它并且不成功。它始终未定义。

var SomeMethod = ko.computed(function() {
.....
}

任何想法,如果这是可能的?

1 个答案:

答案 0 :(得分:2)

Knockout在计算的observable中执行绑定以跟踪依赖项。我不确定你的确切目标,但你可以在你的情况下使用正常的功能。

var SomeMethod = function(item) {
     //do something with the item and return a value

};

根据您要传递的内容,您可能希望在绑定中使用$data,如:

data-bind="visible: SomeMethod($data)"

更常用的另一个选择是实际在每个返回适当值的项上放置一个计算器。如果传递给函数的值在项目本身上表示,那么您应该能够创建一个计算机来干净地表示它的值。