Zugang select2 HTML-Optionen von Knockout-Bindung individuelle, um sie zu deaktivieren

stimmen
0

Ich versuche, die Option Elemente aus einer select2 Dropdown-Liste für den Zugriff auf einen Knockout benutzerdefinierte Bindung, um mit einigen von ihnen (einige der Optionen) zu deaktivieren. Die benutzerdefinierte Bindung ist:

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

und der HTML-Teil ist:

    <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>

wo das Datenarray ist:

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);
} 
}

Ich kann die Daten sehen, wenn ich über das EL-Element schweben, aber ich weiß nicht, wie es programmatisch zuzugreifen. Wer weiß, wie diese Elemente zu bekommen?Die

Veröffentlicht am 19/12/2018 um 14:17
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Es sollte in valueAccessor()

valueAccessor: Dies stellt eine JavaScript-Funktion, die verwendet werden kann, die aktuelle Eigenschaft oder Ausdruck in dieser Bindung beteiligt zuzugreifen. Da Knockout können Sie entweder einen Blick Modelleigenschaft direkt (zB „data-bind =‚aktiviert: isEnabled‘“) verwenden, oder einen Ausdruck (zB „data-bind =‚aktiviert: firstName.length> 0‘“) gibt es eine Nutzenfunktion, die „auspacken“ und geben Sie den aktuellen Wert in der Bindung verwendet. Im übrigen ist diese Funktion „ko.unwrap“ genannt.

var val = ko.unwrap(valueAccessor());
//val.options;
Beantwortet am 19/12/2018 um 14:54
quelle vom benutzer

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