Knockout.Js 数组过滤器语法

2024-01-27

刚刚开始接触 javascript 和 knockout.js。我找到了很多我想要实现的目标的例子。我觉得我可能忽略了一个小语法错误。我正在尝试过滤已返回的集合(这个任务)通过 ajax/json 从服务器获取。我的那个工作得很好。我想做的是让用户能够在完成和不完整的任务之间切换。

我将代码切换为仅在tasksFiltered 上运行foreach 循环。 “this.done”要么是真,要么是假。

任务模板

var taskModel = function(id, title, description, done){
    var self = this;
    this.id = ko.observable(id);
    this.title = ko.observable(title);
    this.description = ko.observable(description);
    this.done = ko.observable(done);

    this.showEdit = ko.observable(false);
    this.titleUpdate = ko.observable(false);
    this.descriptionUpdate = ko.observable(false);
};

页面模型

var pageModelTasks = function(){
    var self = this;
    this.task_title = ko.observable("");
    this.task_description = ko.observable("");
        this.task_title_focus = ko.observable(true);
    this.tasks = ko.observableArray([]);

    this.tasksFiltered = ko.computed(function() {
        return ko.utils.arrayFilter(this.tasks, function(Task) {
        return Task.done == true;
      });
    });

   // CRUD functions excluded 
}; 

这是行不通的。


对您的代码进行了两处小修正。首先,正如@XGreen提到的,您需要传递数组值,notobservableArray 实例,作为第一个参数arrayFilter功能。最后,因为Task.done是可观察的,需要调用成员来获取值。这是修改后的代码:

this.tasksFiltered = ko.computed(function() {
    return ko.utils.arrayFilter(this.tasks(), function(Task) {
        return Task.done() === true;
    });
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Knockout.Js 数组过滤器语法 的相关文章

随机推荐

  • 使用 OpenGL,结果取决于安装的硬件或驱动程序吗?

    我按照此处的说明使用 OpenGL 遮挡进行渲染 https developer download nvidia com books HTML gpugems gpugems ch29 html https developer downlo
  • 导航器只能包含“Screen”、“Group”或“React.Fragment”作为其直接子级

  • TPL 数据流与普通信号量

    我需要制定一个可扩展的流程 该进程主要有 I O 操作和一些次要的 CPU 操作 主要是反序列化字符串 该流程在数据库中查询 url 列表 然后从这些 url 中获取数据 将下载的数据反序列化为对象 然后将部分数据保存到 crm 动态以及另
  • 在 FlulClient 中禁用自动重定向

    我在用FlulHttp http tmenier github io Flurl fluent http 我想禁用某些 API 调用的AllowAutoRedirect 我知道如何让 System Net Http HttpClient 不
  • 使用 MySQL WorkBench 导入...错误 ERROR 1046 (3D000)

    场景 本地搭建RoR环境进行开发 生产位于 EngineYard GitHub 上 现在一切正常 除了数据库没有导入 我有一个从我的产品 EY 网站获取的 sql 文件 现在我需要将它导入到本地的 MySQL 中 我正在使用工作台 因为我是
  • 枚举强名称CSP的容器名称

    我正在尝试查找一些有关如何 如果可能的话 枚举强名称 CSP 加密服务提供商 中的所有容器名称的信息 本质上 当你输入sn exe i key snk MyContainerName 公钥和私钥对存储在所谓的 容器 中 稍后 在您的代码中
  • 在谷歌地图或谷歌地球插件中惰性/需求加载KML?

    一旦 Google 地图或 Google 地球插件实例启动 是否可以延迟加载 KML 文件 也许有一个 边界框 事件 我可以用它来排队所需的 KML 文件 编辑 gt 找到答案 发现了这个小花絮 http code google com a
  • SVN更新,未提交更改的本地文件会发生什么?

    假设我正在处理一个本地文件 它是存储库的一部分 本地文件具有本地更改 并且已保存到本地文件但尚未提交 当我去更新整个存储库时会发生什么 SVN 是否会尝试将 HEAD 与本地副本合并 希望没有冲突 或者 SVN 是否会保留本地副本直到稍后提
  • “欺骗” SQL Server 接受来自 R 的文件

    我在 R 的本地环境中有一个文件 大约 1000000 行和 15 列 我正在尝试将此文件上传到 SQL 服务器 library odbc library DBI library RODBC dbWriteTable my connecti
  • 无法在本地主机上测试 facebook like 按钮(与以前不同)

    我开发了一个带有 Facebook 社交插件 点赞 推荐和发送按钮 的小网页 直到大约一个月前 我才能在本地主机上成功测试按钮和单击事件 但突然按钮现在无法在本地主机上工作 仅当我通过 localtunnel 将网页部署在公共 IP 上时
  • 修剪 ggplot2 中的第一个和最后一个标签

    我有一个按天列出两种类型数据的图 我希望只修剪图中的第一个和最后一个标签 这是数据的可重现示例 library dplyr library ggplot2 library scales dates lt paste0 2014 01 1 3
  • 读取 D3 中没有标题行的 csv/tsv

    我有 CSV 数据 看起来像 Data 1 1 10 1 2 50 1 3 5 etc 我正在尝试读入数据 但是 我的初始数据不包含标题行 如上所示 因此它将第一个数据行作为标题 1 1 10 有没有办法解决 我想在读取数据后设置标题名称
  • 如何使用 jQuery 验证插件以编程方式检查表单是否有效

    我有一个带有几个按钮的表单 我正在使用 jQuery 验证插件http jquery bassistance de validate http jquery bassistance de validate 我只是想知道是否有任何方法可以检查
  • 为什么我的侧边栏被推到内容下方?

    我正在尝试使用 HTML 和 CSS 设置模板 但我的侧边栏出现问题 它似乎被推到了我的内容下方 尽管它应该是在左侧 我不明白为什么 有没有人有什么建议 Example http jsfiddle net zDdfn http jsfidd
  • 在 SELECT 语句中使用 UDF

    我制作了一个用于计算营业时间的用户定义函数 这是我的UDF CREATE FUNCTION fn GetBusinessHour date datetime addHours int RETURNS datetime AS BEGIN DE
  • 括号() 和 SQL 查询性能

    在where语句中 是否添加不必要的括号 影响SQL性能 Example SELECT FROM table WHERE name John AND age 30 AND address Some Street AND height 510
  • Docker 容器拒绝连接

    我已经为此挣扎了相当长一段时间 我有一个 Django 应用程序 我正在尝试将其打包到容器中 问题是 当我发布到某个端口 8001 时 主机拒绝我的连接 docker machine ip default 192 168 99 100 当我
  • Derby 数据库导出为单个文件?

    我正在制作一个小型应用程序 并且正在使用嵌入式 derby 数据库 我希望该应用程序能够将整个数据库保存到一个文件中 该文件可以存储在硬盘驱动器上 并且还可以通过在未来 关于我该怎么做的任何线索或例子 这可能会帮助你 1 资源1 http
  • wpf按钮点击事件

    In this question https stackoverflow com questions 4720446 wpf adding tabitems dynamically 4722047 4722047我问了关于添加TabItem
  • Knockout.Js 数组过滤器语法

    刚刚开始接触 javascript 和 knockout js 我找到了很多我想要实现的目标的例子 我觉得我可能忽略了一个小语法错误 我正在尝试过滤已返回的集合 这个任务 通过 ajax json 从服务器获取 我的那个工作得很好 我想做的