tengo etiqueta de anclaje como estePaso de parámetros a una función en knockoutjs ViewModel
<a href="#" class="btn btn-success order-btn" data-bind="attr:{'data-tiername':$data.tierName, 'data-identifier' : $parent.identifier}, click: $root.setPath.bind($data,$data.tierName, $parent.identifier)">Send values</a>
En el modelo de vista
var appViewModel = {
setPath: function (data, tier, identifier) {
alert(data);
alert(tier);
alert(identifier);
},
...........
...........
}
El resultado es algunas knockoutjs código del núcleo está representada en mensaje de alerta (posiblemente definiciones de funciones observable(), dependienteObservable() y [Objeto objeto] que está vacío cuando se lo alerta con JSON.stringify)
¿Por qué funciona esto?
data-bind="attr:{'data-tiername':$data.tierName, 'data-identifier' : $parent.identifier}
pero no esto:
click: $root.setPath.bind($data,$data.tierName, $parent.identifier)
nota que tierName es un observable(), identificador se calcula()
¿Dónde puedo encontrar más información sobre bind() ??
quería hacer 'alert (tier); alerta (identificador); 'en mi función viewmodel, realmente no quería el contexto (esto). Así que mi función se convirtió en 'setPath (nivel, identificador)' Gracias por ayudarme – nthapa13
KO agrega una implementación de 'bind' si no está disponible, por lo que si hace referencia a KO, puede usar' bind'. –
Gracias RP Niemeyer, es bueno saberlo. –