Knockoutjs con jQuery UI ordinabili
-
30-09-2019 - |
Domanda
Sto lavorando con i gruppi di Google sui forum di Knockout per aiuto con questo troppo -. Ma immagino un pubblico più grande non può mai far male la situazione
Sto cercando di ottenere il KO al lavoro con una situazione utilizzando jQuery UI del plugin 'ordinabili'. Io ho il mio codice postato qui.
Il tentativo di utilizzare un costume vincolante ...
ko.bindingHandlers.onReceiveItem = {
init: function (element, valueAccessor, allBindingsAccessor, viewModel) {
$(element).bind("sortreceive", function (event, ui) {
ko.bindingHandlers.onReceiveItem.update(element, valueAccessor, allBindingsAccessor, viewModel);
});
},
update: function (element, valueAccessor, allBindingsAccessor, viewModel) {
var value = ko.utils.unwrapObservable(valueAccessor());
var bindings = allBindingsAccessor();
}
};
L'obiettivo è che quando l'elenco ordinabile riceve un elemento, si può ottenere l'oggetto e aggiungerlo agli altri observableArray.
Questo non è del tutto lavorando per me, però. Sto avendo difficoltà a ottenere l'evento a fuoco come lo voglio. Il modo in cui l'ho istituito, lo fa il fuoco, ma restituisce solo un valore 'vero / falso'. Speravo qualcun altro potrebbe avere un'idea di quello che sto facendo male e sapere come risolvere il problema.
(per utilizzare il codice, è necessario fare riferimento
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/themes/base/jquery-ui.css" rel="Stylesheet" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.3/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.js"></script>
in alto, e poi l'ultima versione di Knockout (1.1.1)
http://cloud.github.com/ downloads / SteveSanderson / kO / eliminazione diretta-1.1.1.debug.js
Soluzione
non mi rendevo conto Steve aveva già risposto a questa prima avevo finito. Qui si va, però, modo leggermente diverso di lui.
ordinabili questo rende molto più difficile, questo sarebbe stato molto più facile con un drag and drop legame legato a ciascun prodotto. Il problema con ordinabili è che si sono vincolanti per l'intera lista al posto degli oggetti.
Altri suggerimenti
I rielaborato il campione ed è venuto con un bindingHandler quasi completo, non richiede un attributo id e anche le maniglie riordino. Ecco il codice:
http://jsbin.com/knockoutsortable/20/edit
utilizzo:
-
E 'utilizzando il template.foreach vincolante per scoprire che cosa è la matrice associata nel ViewModel.
-
È possibile utilizzare databind = "foreach: Prodotti, ordinabile: true". Per consentire l'ordinamento all'interno di un singolo array senza opzioni
-
Si sta lavorando con observableArray oggetti.
-
E 'la costruzione della ordinabili jQuery di per sé, è possibile passare le stesse opzioni oggetto nel legame che nel costruttore jQuery.sortable.