purecomputed knockoutjs knockout deferevaluation data computed knockout.js variable-assignment observable

knockout.js - deferevaluation - knockoutjs self



Asignación de valores al knockout observable dinámicamente determinado por el nombre de la cadena (1)

Si tiene su objeto primario, entonces puede acceder a un elemento observable usando esta sintaxis:

viewModel[observableName]

y establecer el valor como:

viewModel[observableName](newValue)

Aquí hay una muestra donde puede elegir el nombre de la propiedad de un menú desplegable y luego establecer el valor en consecuencia y otro en el que el botón se vincula directamente a establecer un valor / observable: http://jsfiddle.net/rniemeyer/CTnUQ/

Tengo dos preguntas por favor:

Estoy usando knockout (soy un KO noob sry) y me gustaría asignar un valor a un knockout observable específico sobre un evento click pero que solo debe determinarse en el evento click en sí mismo (y el valor que pasaré a el enlace de datos = clic) ... se puede hacer por favor ... ¿puedo obtener la variable observable de anulación justo después de su nombre (un valor de cadena) en lugar de tener que saber qué observable voy a asignar un valor ¿antemano?

Y, en segundo lugar, menos importante, si existe una función como ko.ObservableByName (stringName) es posible usarla de alguna manera y asignar la preselección de múltiples elementos seleccionados al cargar la página ... ¿y cómo?

Intenté hacer esto ... He utilizado data-bind = "click: loadData.bind ($ data, '' param1 '', '' param2 '')" y luego puedo obtener esos param1 y param2 string valores mediante la construcción de un controlador de eventos en mi modelo de vista knockout que va algo a lo largo de la línea de:

self.loadData = function (src, dest) { //dest is ''param1'', src is ''param2'', both are stings if (src == ''param1'') self.p1observable($(''#'' + dest).val()); else self.p2observable($(''#'' + dest).val()); }

Mi mayor problema con esto es que tengo que construir la función con observables p1 / p2 ya especificados y codificados en ella, pero realmente me gustaría obtener param1 y param2 para ser utilizados como nombres o referencias por nombre de algunos de mis observables, que luego podría pasar a voluntad (junto con un valor que se asignará, o mejor aún otro observable me gustaría copiar el valor de la primera), y así podría asignar valores pasados ​​en el clic llamar a la función directamente a un observable de mi elección (y no tener un gran número de funciones tan pequeñas) ...

¿Tal vez voy por el camino equivocado? Tal vez no debería estar transmitiendo valores de cadena ... Tal vez debería tratar de pasar un objeto observable, pero ¿cómo se puede hacer eso dentro del enlace de datos? ¿Escribes myViewModel.myObservable o algo así?