Sto usando knockoutjs (molto nuovo ad esso) con JQuery Mobile. Ho una lista a cui leghiamo i risultati filtrati. Quando si carica i miei dati la prima volta che devo chiamareAggiorna automaticamente la visualizzazione elenco sulla modifica - knockoutjs e JQuery Mobile
$('ul').listview('refresh');
in ordine per jQm restyling mia lista, questo funziona alla grande.
Tuttavia, quando filtro la mia lista, viene rasterizzato e perde di nuovo lo stile e non riesco a capire dove chiamare di nuovo l'aggiornamento.
mio html è la seguente:
<p>Filter: <input data-bind="value: filter, valueUpdate: 'afterkeydown'" /></p>
<ul data-role="listview" data-theme="g" data-bind="template: {name: 'myTemplate', foreach: filteredItems }" />
mio Knockout JS è:
var car = function (name, make, year) {
this.name = name;
this.make = make;
this.year = year;
}
var carsViewModel = {
cars: ko.observableArray([]),
filter: ko.observable()
};
//filter the items using the filter text
carsViewModel.filteredItems = ko.dependentObservable(function() {
var filter = this.filter();
if (!filter) {
return this.cars();
} else {
return ko.utils.arrayFilter(this.cars(), function (item) {
return item.make == filter;
});
}
}, carsViewModel);
function init() {
carsViewModel.cars.push(new car("car1", "bmw", 2000));
carsViewModel.cars.push(new car("car2", "bmw", 2000));
carsViewModel.cars.push(new car("car3", "toyota", 2000));
carsViewModel.cars.push(new car("car4", "toyota", 2000));
carsViewModel.cars.push(new car("car5", "toyota", 2000));
ko.applyBindings(carsViewModel);
//refresh the list to reapply the styles
$('ul').listview('refresh');
}
Sono sicuro che c'è qualcosa di molto stupido che mi manca ...
Grazie per il tuo tempo.
Grazie, mi sono imbattuto in questo prima, ma non sono sicuro di come applicare questa associazione al mio foreach? – jimjim
Davvero puoi metterlo su qualsiasi elemento, anche sul corpo. Se vuoi mantenerlo con il tuo template, allora potresti fare: 'data-bind =" template: {name: 'myTemplate', foreach: filteredItems}, jqmRefreshList: filteredItems "' –
Grazie mille RP! Ha funzionato a meraviglia. BTW knockmeout è un ottimo sito. – jimjim