语法问题.淘汰赛.用于过滤
Syntax problems. Knockout. For filtering
我正在处理jquery、Json数据和敲除。我所做的是获取一个数据,添加到绑定表中,并为name添加一个筛选字段。
问题是,这个过滤字段并不像我希望的那样工作。因为它匹配整个单词。这就是代码:
self.filter = ko.observable();
self.tickets = ko.computed(function () {
var filter = self.filter(),
arr = [];
if (filter) {
ko.utils.arrayForEach(self.ticketViewModel(), function (item) {
if (item.Name() == filter || item.Status() == filter) {
arr.push(item);
}
});
} else {
arr = self.ticketViewModel();
}
return arr;
});
所以我试着让它从第一个字母开始过滤。我找到了几种方法,这些方法应该有效,但我无法得到结果,因为我总是会遇到各种语法错误。也许谁用过这些可以帮助我。它的代码:
self.filter = ko.observable().toString().toLowerCase();
self.tickets = ko.computed(function () {
var filter = self.filter(),
arr = [];
if (!filter) {
arr = self.ticketViewModel();
} else {
ko.utils.arrayFilter(self.ticketViewModel(), function (item) {
if (ko.utils.stringStartsWith(item.Name().toLowerCase()), filter)
arr.push(item);
})
}
return arr;
});
我得到的最后一个错误是-未捕获类型错误:字符串不是行上的函数
var filter = self.filter()
同样的错误我也犯过几次,但在修复后,我又犯了一次,而通常我会再次犯。。。对不起我的英语。如果需要,我可以发布整个代码。
终于自己找到了答案。
我使用的不是ko.util.stringStartsWith(),而是一个简单的Javascript检查。而且效果非常好。也许它对某人有用。
self.filterName = ko.observable('');
self.filterCompany = ko.observable('');
self.filterStatus = ko.observable('');
self.tickets = ko.computed(function () {
return ko.utils.arrayFilter(self.ticketViewModel(), function (rec) {
return (
(
(self.filterName().length == 0 || (rec.Name().toLowerCase().indexOf(self.filterName().toLowerCase()) > -1)) &&
(self.filterCompany().length == 0 || (rec.CompanyName().toLowerCase().indexOf(self.filterCompany().toLowerCase()) > -1)) &&
(self.filterStatus().length == 0 || (rec.Status().toLowerCase().indexOf(self.filterStatus().toLowerCase()) > -1))
)
)
});
});
相关文章:
- 将函数的上下文应用于javascript变量
- keyup事件处理程序更改焦点不适用于快速键入
- 有可能过滤来自嵌入式YouTube的声音吗
- LoDash挑战,我有一个需要过滤的对象数组,用于一个值数组
- Knockoutjs 模板:在通过某些属性过滤该数组后,如何将 1 个对象数组用于 2 个 DOM 元素
- 如何过滤一些看起来非常复杂的JSON数据并将其用于传单.js中的标记
- 将逻辑 NOT 应用于 propEq 并在 ramda 中过滤
- Jquery/rss feed脚本,用于过滤掉所有超过 90 天的帖子
- 角度$filter,用于在 JSON 响应中的数组中进行深度过滤
- 用于 API 混搭、过滤和排序的在线 etl
- 语法问题.淘汰赛.用于过滤
- MySQL中用于AngularJS日期过滤器过滤的日期格式
- Jquery插件,用于允许类似手风琴的行扩展和过滤的表
- 用于过滤JS代码的python regex
- 用于过滤src的正则表达式
- ASP.NET网格列宽度改变时,没有记录发现与过滤条件,javascript用于过滤
- RegExp用于过滤最后一个点之后的字符
- javascript:用于构建类似于ebay的搜索过滤前端的任何UI库
- 过滤组合框不适用于常见的商店组合
- Array.prototype.reduce与用于过滤和修改数据的简单for循环相比