使用knockout.js 过滤器绑定的问题

何塞·劳尔·佩雷拉

我是使用 Knockout.js 框架的新手,我的代码中出现以下错误,我正在使用 Knockout.js 构建应用程序,一切正常,除非我尝试创建一个dependentObservable。

这是javascript代码:

(function() {
  'use strict';

    console.log("This is my Application");

     var app = {
         mapElement: document.getElementById('map'),
         mapObj: map,
         locations : ko.observableArray([
            {id: 1, title: 'Holywood Theater', location: {lat: 43.098344, lng: -76.145697}},
            {id: 2, title: 'Mattydale Fire Department', location: {lat: 43.098172, lng: -76.142189}},
            {id: 3, title: 'Original Italian Pizza', location: {lat: 43.098854, lng:  -76.144700}},
            {id: 4, title: 'Roxboro Road Middle School', location: {lat: 43.101110, lng: -76.150901}},
            {id: 5, title: 'Big Lots', location: {lat: 43.101400, lng: -76.146985}},
            {id: 6, title: 'Camnel pub', location: {lat: 43.098670, lng: -76.145832}}
        ]),
        markers:[],
        textFilter: ko.observable(),
        filterLocations: ko.dependentObservable(function () {
                            return ko.utils.arrayFilter(app.locations(), function (loc) {
                                return loc.title().toLowerCase().includes(app.textFilter().toLowerCase());
                            });
                        })
     };

    ko.applyBindings(app);
})();

chrome 控制台中的错误是:

未捕获的类型错误:无法读取未定义的属性“位置”

花花公子

在视图模型中使用对象字面量时,您应该将计算/依赖的 observables 定义为

app.filterLocations = ko.computed(function () {
                        return ko.utils.arrayFilter(this.locations(), function (loc) {
                            return loc.title.toLowerCase().includes(app.textFilter().toLowerCase());
                        });
                    }, app);

请注意将appobject 作为第二个参数传递给定义范围的计算函数this

也使用computed代替dependentObservable.

计算观测值

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Knockout.js:使用过滤器绑定foreach

来自分类Dev

Knockout.js:使用过滤器进行foreach绑定

来自分类Dev

使用 Knockout JS 搜索嵌套 json 数组的过滤器

来自分类Dev

Knockout.Js数组过滤器语法

来自分类Dev

使用“多个过滤器”的Angular JS

来自分类Dev

使用angular.js过滤器按月过滤日期

来自分类Dev

使用对象过滤器模块的问题

来自分类Dev

使用Knockout Js进行Ajax数据绑定

来自分类Dev

使用jQuery的Knockout.js数据绑定

来自分类Dev

在自定义过滤器Angular JS中使用数字过滤器

来自分类Dev

使用 dc.js 的简单列表过滤器和搜索过滤器?

来自分类Dev

使用 Knockout.js 的 CSS 问题

来自分类Dev

使用不带交叉过滤器的dc.js

来自分类Dev

使用过滤器限制-instafeed.js

来自分类Dev

在React.js中使用SVG过滤器属性

来自分类Dev

使用过滤器限制-instafeed.js

来自分类Dev

使用react.js实现过滤器功能

来自分类Dev

Fabric js图像过滤器加载问题

来自分类Dev

Angular JS-多个ngrepeat和过滤器问题

来自分类Dev

Fabric js图像过滤器加载问题

来自分类Dev

无法使用数据绑定设置过滤器值?

来自分类Dev

angular js中区分大小写的过滤器,无需使用用户定义的过滤器

来自分类Dev

使用skimage导入过滤器时遇到问题

来自分类Dev

流过滤器示例代码使用问题

来自分类Dev

DAX:使用多个过滤器计算总和的问题

来自分类Dev

如何使用 awk 解决日期过滤器的问题

来自分类Dev

尝试使用 Vanillajavascript 创建搜索框/过滤器的问题

来自分类Dev

Knockout.js使用Rowspan绑定2D表

来自分类Dev

使用Knockout.js绑定Bootstrap弹出窗口中的单击