为什么 ko.observableArray.length 不返回底层数组的长度?

2023-12-19

使用 Knockout,当与observableArray,您必须获取底层数组(myArray())以便读取长度。我不明白为什么myArray.length不会返回底层数组的长度(而是返回 0)。这是一个错误还是有什么我只是错过的原因?

JSFiddle: http://jsfiddle.net/jsm11482/LJVWE/ http://jsfiddle.net/jsm11482/LJVWE/

JS/Model

var data = {
    name: ko.observable("Test"),
    items: ko.observableArray([
        { name: ko.observable("First Thing"), value: ko.observable(1) },
        { name: ko.observable("Second Thing"), value: ko.observable(2) },
        { name: ko.observable("Third Thing"), value: ko.observable(3) }
    ])
};

ko.applyBindings(data, document.getElementsByTagName("div")[0]);

HTML

<div>
    <h1 data-bind="text: name"></h1>
    <ul data-bind="foreach: items">
        <li data-bind="text: value() + ': ' + name()"></li>
    </ul>

    <div>
        <strong>data.items.length == </strong>

        <!-- Expecting 3, get 0. -->
        <span data-bind="text: items.length"></span>
    </div>
    <div>
        <strong>data.items().length == </strong>

        <!-- Expecting 3, get 3. -->
        <span data-bind="text: items().length"></span>
    </div>
</div>

这是因为平淡的itemsobservable 实际上是一个 Function,它有自己的length属性来指示期望的参数数量。

From MDN 的函数页面(属性部分) https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function#Properties:

length https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/length
指定函数期望的参数数量。

作为一名使用 KnockoutJS 库的开发人员,我最初也会expectobservableArray 的长度是底层数组的长度,但我确实很欣赏 KO 库没有覆盖这个 Function 属性,因为这可能会导致其他不需要的副作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 ko.observableArray.length 不返回底层数组的长度? 的相关文章

  • Android 设备上的 PhoneGap 蓝牙插件

    我一直在尝试让 PhoneGap 工作的蓝牙插件 但我似乎不知道哪里出了问题 首先 我的测试设备是 Galaxy S3 GT 19305T 应用程序是使用PhoneGap CLI http docs phonegap com en 3 0
  • 如何重定向到 instagram://user?username={username}

    我的 html 页面上有这个链接 可以在特定用户上打开 Instagram 应用程序 a href Link to Instagram Profile a 我一直在寻找自动运行 url instagram user username USE
  • 使用 useReducers 调度函数发送多个操作?

    使用时是否可以通过调度函数发送多个动作useReducer挂钩反应 我尝试向它传递一组操作 但这会引发未处理的运行时异常 明确地说 通常会有一个初始状态对象和一个减速器 如下所示 const initialState message1 nu
  • 从数组中删除空白元素

    当我从 ruby on Rails 表单中保存多个选择时 它似乎在前面添加了一个空白元素 我该如何删除它 该字段为 selected player utf8 gt authenticity token gt H8W7qPBezubyeU0a
  • 我想检查 $('#td1').text() === "x" 是否?

    我想检查innerHtml是否有X或O 所以我不能再次添加任何其他东西 但它不起作用 添加检查代码后它就停止了 我在这里尝试做一个简单的XO游戏来更熟悉javascript和jquery 我也不确定是否可以用 jQuery 做到这一点
  • 最小化代表性整数的误差之和

    Given n integers between 0 10000 as D1 D2 Dn where there may be duplicates and n can be huge I want to find k distinct r
  • 使用 JavaScript 使链接保持活动状态并在单击时显示悬停效果

    I am struggling to make this work I d like to make it where if O F is clicked the hover state stays active if another li
  • 如何抑制窗口鼠标滚轮滚动...?

    我正在开发嵌入页面中的画布应用程序 我有它 因此您可以使用鼠标滚轮放大绘图 但不幸的是 这会滚动页面 因为它是文章的一部分 当我在 dom 元素上滚动鼠标滚轮时 是否可以阻止鼠标滚轮在窗口上滚动 附加鼠标滚轮 不是 Gecko DOMMou
  • Jquery/Javascript 上传和下载文件,无需后端

    是否可以在没有后端服务器的情况下在 JavaScript 函数中下载和上传文件 我需要导出和导入由 JavaScript 函数生成的 XML 我想创建按钮 保存 xml 来保存文件 但我不知道是否可行 另一方面 我希望将 XML 文件直接上
  • 将div设置为隐藏,延时后可见

    我试图在 X 时间后 也许甚至在随机时间之后 但现在我们只做固定时间 在黑色背景上出现一个黄色方块 function initialSetup if document getElementById yellow null document
  • Babel 7 Jest Core JS“TypeError:wks不是函数”

    将我的项目升级到 Babel 7 后 通过 Jest 运行测试会抛出以下错误 测试在 Babel 6 中运行没有任何问题 但在 Babel 7 中失败并出现以下错误 TypeError wks is not a function at Ob
  • Javascript 数组到 VBScript

    我有一个使用 Javascript 构建的对象数组 我需要使用 VBScript 读取它 如下例所示 我找不到在 VbScript 代码中循环遍历数组的方法myArray object 这个例子是我的问题的简化 我无法更改页面的默认语言 这
  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • FireFox 中的自动滚动

    我的应用程序是实时聊天 我有一个 Div 来包装消息 每条消息都是一个 div 所以 在几条消息之后 我的 DOM 看起来像这样 div div Message number two div div div div
  • 模块构建失败(来自 ./node_modules/babel-loader/lib/index.js)Vue Js

    我从 GitHub 下载了一个我和我的朋友正在开发的项目 但是当我尝试运行时 npm run serve 我收到这个错误 src main js 中的错误 Module build failed from node modules babe
  • 为什么我不能在 AngularJS 中使用 data-* 作为指令的属性名称?

    On the t他的笨蛋 http plnkr co edit l3KoY3 p preview您可以注意到属性名称模式的奇怪行为data 在指令中 电话 Test of data named attribute br
  • JQuery 图像上传不适用于未来的活动

    我希望我的用户可以通过帖子上传图像 因此 每个回复表单都有一个上传表单 用户可以通过单击上传按钮上传图像 然后单击提交来提交帖子 现在我的上传表单可以上传第一个回复的图像 但第二个回复的上传不起作用 我的提交过程 Ajax 在 php 提交
  • Repa 数组上的并行 mapM

    在我最近的work https github com bgamari mixture model with Gibbs sampling 我一直在充分利用RVar http hackage haskell org packages arch
  • 为什么 jquery 没有检测到单选按钮未被选中的情况? [复制]

    这个问题在这里已经有答案了 可能的重复 JQuery radioButton change 在取消选择期间不会触发 https stackoverflow com questions 5176803 jquery radiobutton c
  • 使用 Ajax 请求作为源数据的 Jquery 自动完成搜索

    我想做的事 我想使用 jquery 自动完成函数创建一个输入文本字段 该函数从跨域curl 请求获取源数据 结果应该与此示例完全相同 CSS 在这里并不重要 http abload de img jquerydblf5 png http a

随机推荐

  • 状态栏有新通知发送时如何亮屏?

    这是我设置通知的代码 它有效 Override public void onReceive Context context Intent intent category String intent getExtras get CATEGOR
  • 在 Mac OS Big Sur 上使用 pyenv 安装 python 3.6 时出现问题

    在我的 MacBook Air OS Big Sur 上使用命令 pyenv install 3 6 13 安装 Python 3 6 13 时 出现以下错误 Installing Python 3 6 13 python build us
  • 在 Android 设备上尽可能快地删除或删除 sqlite - 表

    我有一个有 1400 行的表 每行都有一个 blob 字段 保存 10kb 到 500kb 之间的数据 我需要删除该表 我花了 3 5 分钟删除该表 并花了 3 分钟删除该表 这对用户来说太长了 我怎样才能尽快删除该表 不需要回滚或任何安全
  • 可以使用 plinq ForAll 批量插入数据库吗?

    我正在这样做 entities AsParallel ForAll o gt repository Insert o 这好吗 我能用它获得更多表现吗 No 这个可能会更快 因为它利用了 SQL 的并行性 但最终 SQL 必须在进行插入时对表
  • Bang IE7 - 这是什么意思?

    这个标题并不像看起来那么疯狂 我保证 在研究另一个问题时 我在 Stack Overflow 的样式表中注意到以下内容 width auto width 650px ie7 padding bottom 20px ie7 这是一种奇怪的条件
  • 部署 .NET COM dll,出现错误 (0x80070002)

    我有一个 NET COM 程序集 正在尝试部署到 Web 服务器 IIS 6 Win 2003 我们已成功将此程序集部署到测试环境 但生产环境无法正常工作 该程序集是从经典 ASP 页面调用的 每次该页面尝试使用 初始化程序集 Set LT
  • 为什么 View.display 返回 null?

    我正在尝试使用本教程来实现 CameraX https codelabs developers google com codelabs camerax getting started 5 https codelabs developers
  • C# 禁用表单加载时的文本框焦点

    我有一个文本框 我想禁用它的焦点 如何通过编程禁用文本框的焦点 使用 C 编程禁用文本框焦点 我使用了下面两个代码不起作用 textBox1 focus false textBox1 focused false 您可以设置this Acti
  • 如何为 Android v2 地图创建发布密钥

    我尝试了下面的调试密钥代码 它工作正常 当我制作 apk 时 地图崩溃了 在谷歌搜索后 我发现调试键在发布模式下工作 keytool list v keystore C Users your user name android debug
  • 用于表单的 Google Apps 脚本,生成唯一 ID 号

    我创建了一个简单的 Google 表单 其中包含以下字段 姓名 电子邮件 工资和请求 当用户完成表单后 我想向他 她发送一封包含信息的电子邮件 但是 我想使用 请求 字段插入一个唯一的号码 用户在需要进一步通信时可以参考该号码 如果用户在
  • 获取自 Pandas DataFrame 中上次出现以来的天数?

    假设我有一个 Pandas DataFramedf Date Value 01 01 17 0 01 02 17 0 01 03 17 1 01 04 17 0 01 05 17 0 01 06 17 0 01 07 17 1 01 08
  • 通过 LINQ 使用通用列表中的值格式化字符串

    问题已更新 我有一个通用列表 其中可以包含以下值 Sector 1 Sector 2 Sector 4 或以下值 All Sectors 我想将这些值格式化为字符串 如下所示 Sector 1 2 4 or All Sectors 目前 我
  • 如何将许多对象(具有相同的类)保存到txt文件并将这些对象与列表框VB.NET绑定

    我尝试编写一个简单的项目来将数据保存到txt文件中 读取它并使用绑定数据来显示它 我的项目是这样的 当我将 ID 人员添加到 添加 ID 文本框 靠近 添加 ID 按钮的文本框 时 它将把 ID 添加到列表框和 ID 名称 文本框中 使用此
  • WCF 是否使用 ThreadPool 为 PerCall 服务创建新实例?

    对于限制设置为高的 PerCall WCF 服务 例如 最大并发调用 200 个 WCF 是否会启动一个新实例并在线程池线程上调用请求 如果是 那么这对允许的并发调用总数有影响吗 我之所以这么问 是因为我似乎从未达到在服务限制配置中设置的最
  • 在 Hmisc::latex 中转义 LaTeX 控制符号

    我在 R 中有一个数据框 不幸的是其中包含包含美元符号的字符串 当函数latex 从包装中Hmisc http cran r project org web packages Hmisc index html将此数据框转换为 LaTeX 表
  • 在 flutter / dart 中创建二维数组

    我对扑扑和飞镖是全新的 我搜索过谷歌 我能找到的只是如何在颤振中制作一维列表 我需要一张价值观图表 具体来说 我需要一行 12 长 一列 31 长 并填充升序数字 1 32 63 2 33 64 3 34 65 etc thanks int
  • NGINX 标头和主体过滤器模块

    我一直在编写一个 NGINX 过滤器模块 它可以读取 写入传入请求的 cookie 如果未正确设置特定 cookie 即身份验证 cookie 它将把传出标头状态设置为适当的错误代码 按照以下说明 这可以正常工作埃文 米勒的教程 http
  • 检查 Swift 中是否实现了可选协议方法?

    我有一个快速协议 objc protocol SomeDelegate optional func myFunction 我上过的一门课 weak var delegate SomeDelegate 现在我想检查是否delegate has
  • MYSQL 匹配

    到目前为止 我有一个名为 业务 的表 其中包含 13 000 000 条记录 我想在此表中搜索 lowerTitle 和电话字段 如果我使用 SELECT FROM business WHERE MATCH lowerTitle AGAIN
  • 为什么 ko.observableArray.length 不返回底层数组的长度?

    使用 Knockout 当与observableArray 您必须获取底层数组 myArray 以便读取长度 我不明白为什么myArray length不会返回底层数组的长度 而是返回 0 这是一个错误还是有什么我只是错过的原因 JSFid