asp.net-mvc-4 - 使用包含而不是stringStartsWith knockout js

标签 asp.net-mvc-4 knockout.js

我的模特很喜欢:

self.filteredItems = ko.computed(function () {
            var filter = this.filter().toLowerCase();

            if (!filter) {
                return this.sites();
            } else {
                return ko.utils.arrayFilter(this.sites(), function (item) {
                    return ko.utils.stringStartsWith(item.Name().toLowerCase(), filter);
                });
            }

        }, self);

我将其用于网页上的搜索,而不是stringStartsWith,而是使用某种.contains,因此我得到的结果是我的搜索词包含在字符串中的任何位置,而不仅仅是在开头。

我想这肯定是一个很普通的要求,但找不到任何明显的东西。

有什么建议吗?

最佳答案

您可以简单地使用 string.indexOf method来检查“字符串包含”:

self.filteredItems = ko.computed(function () {
    var filter = this.filter().toLowerCase();

    if (!filter) {
        return this.sites();
    } else {
        return ko.utils.arrayFilter(this.sites(), function (item) {
            return item.Name().toLowerCase().indexOf(filter) !== -1;
        });
    }

}, self);

关于asp.net-mvc-4 - 使用包含而不是stringStartsWith knockout js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17557789/

相关文章:

asp.net-mvc-4 - 自定义错误在我的 MVC 4 应用程序中不起作用

asp.net-mvc - 找不到与命令 "bower"匹配的可执行文件

javascript - foreach $data 变量上的 ko.compulated 写入函数

c# - Html.TextBoxFor Bootstrap 日期 mvc4

c# - 如何在 View 中引用隐式类型模型

javascript - n 级深度复选框树行为

jquery - 通过jquery选择器查找 knockout 元素

javascript - 使用 knockout.js 进行流畅的导航

javascript - 仅当从列表中选择一个特定选项时才显示相关内容

c# - 是否可以用公式读取excel单元格值?