Estoy usando knockoutjs (muy nuevo) con JQuery Mobile. Tengo una vista de lista a la que debo vincular los resultados filtrados. Después de cargar los datos de mi la primera vez que tengo que llamarActualizar automáticamente la vista de lista en el cambio - knockoutjs & JQuery Mobile
$('ul').listview('refresh');
con el fin de personalizar la apariencia de JQM a mi lista, esto funciona muy bien.
Sin embargo, cuando filtro mi lista, se reintegra y pierde el estilo otra vez y no puedo saber dónde volver a llamar la actualización.
Mi html es el siguiente:
<p>Filter: <input data-bind="value: filter, valueUpdate: 'afterkeydown'" /></p>
<ul data-role="listview" data-theme="g" data-bind="template: {name: 'myTemplate', foreach: filteredItems }" />
Mi Knockout es 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');
}
Estoy seguro de que hay algo muy tonto que me falta ...
Gracias tu por tu tiempo
Gracias, me encontré con esto antes, pero no estoy seguro de cómo aplicar este enlace a mi foreach? – jimjim
Realmente puedes poner esto en cualquier elemento, incluso el cuerpo. Si desea conservarlo con su plantilla, puede hacer: 'data-bind =" template: {name: 'myTemplate', foreach: filteredItems}, jqmRefreshList: filteredItems "' –
¡Muchas gracias RP! Funcionó una delicia. BTW knockmeout es un gran sitio. – jimjim