/ / ¿Cómo puedo devolver un valor en un enlace visible en Knockout? - asp.net-mvc-3, knockout.js

¿Cómo puedo devolver un valor en un enlace visible en Knockout? - asp.net-mvc-3, knockout.js

Estoy tratando de hacer algo de refactorización en un modelo de vista eliminatoria. Comenzando por separar alguna lógica de vista del objeto modelo.

Me preguntaba si hay una manera de devolver un valor cuando se utiliza un enlace visible.

Mi situación actual estoy en un bucle Foreach. Quería pasar de nuevo el objeto Knockout sobre el método que invoco en el enlace visible:

data-bind="visible: SomeMethod"

a

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

El método es obviamente una función asignada a ko.com, y he intentado devolverle el valor y no he tenido éxito. Siempre está indefinido.

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

¿Alguna idea si esto es posible?

Respuestas

2 para la respuesta № 1

Knockout ejecuta el enlace dentro de un observable computado para rastrear dependencias. No estoy seguro de cuál es su objetivo exacto, pero puede utilizar una función normal en su caso.

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

};

Dependiendo de lo que quiera transmitir, es probable que desee utilizar $data en su enlace como:

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

La otra opción que se usa más comúnmente esen realidad coloque un computado en cada elemento que devuelva el valor apropiado. Si el valor que le está pasando a la función está representado en el elemento en sí, entonces debería poder crear una calculada para representar su valor de forma limpia.