Asp.net mvc 3 如何在Knockout中传回可见绑定上的值?

Asp.net mvc 3 如何在Knockout中传回可见绑定上的值?,asp.net-mvc-3,knockout.js,Asp.net Mvc 3,Knockout.js,我正在尝试对淘汰视图模型进行重构。从将一些视图逻辑与模型对象分离开始 我想知道在使用可见绑定时是否有方法将值传递回 我目前的处境我陷入了一个两难的境地。我想将对象淘汰正在迭代的对象传递回我在可见绑定上调用的方法: data-bind="visible: SomeMethod" 到 该方法显然是一个ko.computed函数,我试图将值传回给它,但没有成功。它总是未定义的 var SomeMethod = ko.computed(function() { ..... } 如果这是可能的,有什么

我正在尝试对淘汰视图模型进行重构。从将一些视图逻辑与模型对象分离开始

我想知道在使用可见绑定时是否有方法将值传递回

我目前的处境我陷入了一个两难的境地。我想将对象淘汰正在迭代的对象传递回我在可见绑定上调用的方法:

data-bind="visible: SomeMethod"

该方法显然是一个ko.computed函数,我试图将值传回给它,但没有成功。它总是未定义的

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

如果这是可能的,有什么想法吗?

敲除在计算的可观察范围内执行绑定以跟踪依赖关系。我不确定你的确切目标,但你可以在你的情况下使用一个普通函数

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

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

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

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

谢谢。下面是几个快速跟进问题。我想我遇到了,除非“SomeMethod”是一个计算函数,否则它永远不会调用正常的“function SomeMethod(data){}”。另外,你能给我一个例子,你的最后一句话“应该能够创建计算,以干净地表示其价值”?“SomeMethod”实际上驻留在父对象中,因此这是我无法访问该对象的唯一原因,除非我在函数中传递它。实际上就是这样(data bind=“visible:$parent.SomeMethod”)。谢谢。我刚才说的是这样的区别:和
data-bind="visible: SomeMethod($data)"