¿Cómo puedo vincular el texto seleccionado de un cuadro de selección al atributo de un objeto con JS Knockout o cualquier otra cosa?

StackOverflow https://stackoverflow.com/questions/4785481

Pregunta

Tengo un cuadro de selección despegado que estoy llenando con una lista JSON devuelta de un procedimiento almacenado, pero desafortunadamente cuando actualizo el objeto vinculado, necesito devolver el seleccionado texto del desplazamiento, no El índice seleccionado como uno pensaría (diseño de base de datos deficiente, pero estoy atrapado con él por ahora y no puedo cambiarlo).

¿Alguien tiene alguna idea de lo que puedo hacer para mantener el texto seleccionado ¿Sincronizado con el atributo apropiado del objeto JavaScript?

¿Fue útil?

Solución

Entonces sí, obtuviste lo que me estaba haciendo. Use el texto como valor para las opciones Seleccionar en lugar de usar un índice. El valor realmente debería ser algo útil, no puedo pensar en ningún caso en el que haya usado un índice. Un número seguro, pero un número que se relaciona con los modelos de la aplicación de alguna manera (como una ID de una base de datos), no con el número de elementos en el cuadro Seleccionar.

Bien hecho.

Otros consejos

Puede mantener ambos, el valor y el texto, si usa suscriptores. Por ejemplo, si cada uno de sus objetos JavaScript se ve así:

    var optionObject = {
       text:"text1"
       value: 1
    }

Entonces tu encuadernación se vería como:

Donde 'OptionsObjects' es una colección de opcionObject y selectionOption tiene dos propiedades observables: texto y valor. Finalmente, se suscribe a la propiedad de valor de SelectionOption:

    viewModel.selectedOption.value.subscribe(function(newValue){
        var optionText = viewModel.OptionsObjects[newValue].text;
        viewModel.selectedOption.text(optionText);
    });

Entonces, si desea ver el nuevo texto de la opción seleccionada cuando se cambia el valor, podría tener un enlace de la siguiente manera:

    <span data-bind:"text:selectedOption.text"></span>

En su caso particular, devolvería selectionOption.Text ().

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top