jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在更改时自动刷新列表视图 – knockoutjs和JQuery Mobile大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用jout Mobile的knockoutjs(非常新的).我有一个listview,我将筛选结果绑定到.我第一次打电话后加载数据
$('ul').listview('refresh');

为了让JQM重新列出我的清单,这非常有用.

然而,当我过滤我的列表时,它被重新渲染并再次失去了样式,我无法弄清楚再次调用刷新的位置.

我的html如下:

<p>Filter: <input data-bind="value: filter,valueupdate: 'afterkeydown'" /></p>
     <ul data-role="listview" data-theme="g" data-bind="template: {name: 'myTemplate',foreach: filteredItems }" />

我的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",2000));
    carsviewmodel.cars.push(new car("car3","toyota",2000));
    carsviewmodel.cars.push(new car("car4",2000));
    carsviewmodel.cars.push(new car("car5",2000));        
    ko.applyBindings(carsviewmodel);
    //refresh the list to reapply the styles
    $('ul').listview('refresh');
}

我确信我遗失的东西非常愚蠢……

感谢您的时间.

解决方法

这个问题已经在KO论坛上出现了几次.

一种选择是创建绑定到filteredItems的绑定并运行listview刷新.

它可能看起来像:

ko.bindingHandlers.jqmrefreshList = { 
     update: function(element,valueAccessor) { 
       ko.utilS.UnwrapObservable(valueAccessor()); //just to create a dependency
       $(element).listview("refresh"); 
     } 
   };

现在,您将它放在容器上(或实际上放在任何元素上)并传入您希望它依赖的observable:

<ul data-bind="jqmrefreshList: filteredItems"></ul>

大佬总结

以上是大佬教程为你收集整理的在更改时自动刷新列表视图 – knockoutjs和JQuery Mobile全部内容,希望文章能够帮你解决在更改时自动刷新列表视图 – knockoutjs和JQuery Mobile所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。