Acceso seleccionar 2 opciones de HTML a partir de octavos de unión personalizada con el fin de desactivar

votos
0

Estoy tratando de acceder a los elementos de opción de una lista desplegable select2 utilizando un nocaut enlace personalizado con el fin de desactivar algunas de ellas (algunas de las opciones). La unión es la costumbre:

    ko.bindingHandlers.select2 = {
        after: [options, value],
        update: function (el, valueAccessor, allBindingsAccessor, viewModel) {
            var allBindings = allBindingsAccessor();
            var select2 = $(el).data(select2);
        }
    };

y la parte HTML es:

    <div style=width: 350px;>
        <select style=width: 100%; data-bind=value: attributiSelezionati, options: data, valueAllowUnset: true, optionsText: 'text', optionsValue: 'id', select2: { placeholder: 'Select an option...', allowClear: true, multiple: true}></select>
    </div>

donde la matriz de datos es:

this.data = ko.observableArray([]);
this.data.push(new Item(1, Item 1));
this.data.push(new Item(2, Item 2));
this.data.push(new Item(2, Item 22));
this.data.push(new Item(3, Item 3));
this.data.push(new Item(null, Item 4));

class Item {
id: KnockoutObservable<number> = ko.observable<number>();
text: KnockoutObservable<string> = ko.observable<string>();

constructor(Id: number, Text: string) {
    this.id(Id);
    this.text(Text);
} 
}

Puedo ver los datos cuando se ciernen sobre el elemento, pero no sé cómo acceder a él mediante programación. ¿Alguien sabe cómo conseguir estos equipos?Las

Publicado el 19/12/2018 a las 14:17
fuente por usuario
En otros idiomas...                            


1 respuestas

votos
0

Debe estar en valueAccessor()

valueAccessor: Esto representa una función de JavaScript que puede ser utilizado para acceder a la propiedad actual o expresión que participan en esta unión. Debido Knockout le permite utilizar ya sea una propiedad de vista del modelo directamente (como "datos-bind = 'activada: isEnabled'"), o una expresión (tales como "datos-bind = 'activada: firstName.length> 0'") , hay una función de utilidad que va a "desenvolver" y darle el valor real utilizado en la unión. Por cierto, esta función se denomina "ko.unwrap."

var val = ko.unwrap(valueAccessor());
//val.options;
Respondida el 19/12/2018 a las 14:54
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more