问题标签 [ko.observablearray]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4796 浏览

jquery - Knockout JS 中的依赖 Observable 数组

我已经开始使用 knockoutjs 并做一些简单的绑定/依赖绑定。我的目标是<select>根据另一个列表的值填充1 个<select>列表。两者都是从我的 asp.net 网络服务的 ajax 调用中加载的。

所以我有两个<select>清单

然后我的 javascript 看起来像这样:

目前这可以按预期工作,但我认为我做错了,因为代码看起来很长,我可以在不使用更少代码的情况下做到这一点。另外,我加载的availableModels方式显然是不正确的,因为我使用了一个名为dependentObsevable UpdateModels,我添加它是为了availableModels根据selectedMake().text

我希望这是有道理的,你可以指出一个改进的版本吗?或者简单地告诉我如何根据 Make 选择重新加载模型?

非常感谢,

0 投票
1 回答
6963 浏览

javascript - 敲除可观察数组设置选定值

我正在尝试使用敲除数据绑定选项为值列表填充“选择”,并将其中一个值默认设置为“选定”。

有两个服务器请求,

  1. 获取值列表 (dataRepository.GetLifelines)
  2. 将值之一设置为从列表中选择。(dataRepository.GetMockSelectedLifeline)

第一个要求已得到解决。数据绑定到选择与“选定”值一起工作正常。

我在设置列表中的默认“选定值”时遇到问题。有人可以帮帮我吗。方法是this.selectValue。它正在尝试将 selectedLifeline 设置为匹配的“名称”。

0 投票
1 回答
1103 浏览

javascript - 淘汰赛:嵌套的dependentObservable - 不起作用

我是 Knockout JS 的新手。我需要将嵌套数组绑定如下

名称:下拉

电子邮件:选定用户的姓名

联系方法类型:下拉列表中选择了 ContactInfo 中的联系方法类型

联系人值:来自 ContactInfo 的实际值

我的姓名、电子邮件和联系方式有效。我需要知道如何在下拉列表中选择联系人方法类型值,并且同样需要绑定到联系人值。

我收到以下错误 错误:无法获取属性“ContactMethodType”的值:对象为空或未定义

}

HTML 代码

0 投票
1 回答
761 浏览

javascript - knockoutjs 1.3 - observableArray 不更新视图

我有一个关于 knockoutjs 的问题。我可能完全错误地这样做,但我有一个使用 ajax 数据设置的 observableArray 并且它工作正常。但是,当我再次运行 ajax 时,我删除了所有工作正常的项目 (observableArray.removeAll),但随后视图加倍 - 我拥有所有以前的项目 + 所有新项目。

我的 html/view 如下所示(我使用的是 1.3 beta 中的无容器控制流)

如果我删除所有子 foreach 语句,它工作正常 - 所以似乎是一个嵌套问题?

有任何想法吗?或者这是一个错误?一直试图找到与它相关的任何东西,但还没有运气。

谢谢丹
_

0 投票
2 回答
1562 浏览

html - 有没有一种简单的方法可以让 dojo/dijit 工具包与淘汰赛 observables 一起工作?

如果我有一个声明的选择

我添加了我的淘汰赛数据绑定

如果敲除数组/绑定在 dojo.ready 之前初始化,则选择框会填充正确的值,但是由于 dojo 重写了模板,我们会丢失 observables。

我宁愿不迁移到 dojo 可观察对象,但在这种情况下,我似乎必须这样做。

我正在继续调查,但看起来我们需要采取这一行动。

0 投票
4 回答
1375 浏览

knockout.js - 在 Knockout JS 中将新数组分配给 observableArray 时,绑定无法检测到 observableArray 的更改

我有一个绑定到 observableArray 的模板

而且我每次都需要通过单击链接来刷新数据

我的 viewModel 的第一个版本:

但问题是数据是从服务器异步加载的,所以当我以很小的时间间隔快速单击链接时,数据可能会在我的可观察数组中重复多次。所以我认为我需要在每次刷新时将数据加载到一个新数组中。

然后是viewModel的第二个版本:

而新的问题是UI无法感知数组的变化,似乎self.itmesArray(tempArray)会构造一个新的observableArray对象,但是模板绑定仍然在跟踪旧的observableArray对象,我不确定这个. 所以我想知道如何通知模板/ui 绑定我的数组已更改,或者是否有任何其他解决方法来解决我的问题?

补充:jsFiddle上的代码 http://jsfiddle.net/zzcJC/10/

0 投票
2 回答
6918 浏览

javascript - 是否可以记录一个 KO 可观察数组?

我是 knockoutjs 的新手,我有一个超级基本的问题要问你:

我已经能够成功订阅用户更改屏幕上的推特句柄并成功获取推文并使用显示用户最近的推文console.log(json.results[0].text);但是当我将推json.results入最近的推文时,我不确定我的可观察数组是否正常工作:recent_tweets.push(json.results[0].text)我看到一个[]空数组。

到底是怎么回事?是否可以记录 ko.observable 数组?

0 投票
2 回答
14348 浏览

javascript - 替换 Knockout.js observableArray 中的所有元素

我的视图模型中有一个observableArray。创建 vm 后,我希望将数据完全替换为observableArray. 这是我的做法:

这似乎工作正常,但我担心这是否不正确并可能导致内存泄漏。如果这是更新现有observableArray假设您希望替换其所有数据的首选方式,任何人都可以遵守吗?

我注意到observableArray确实有一个removeAll()方法,并且想知道是否需要调用它来干净地执行此操作,或者我是否对我正在做的事情感到满意?

0 投票
1 回答
6389 浏览

javascript - KnockoutJS:如何将一个 observableArray 添加到另一个?

我想将选择元素中的选定选项添加到绑定表。视图模型具有 addItem 函数,该函数使用 ko.utils.arrayPushAll() 将 selectedItems 数组添加到 addedItems 数组中。但是当我点击 Add 按钮(调用 addItem 函数)时什么也没有发生。如何正确地将一个可观察数组添加到另一个?

HTML

JavaScript

现场示例 - http://jsfiddle.net/6H2PK/7/

更新:删除选定项目的工作示例 - http://jsfiddle.net/ebash/xxNak/

0 投票
3 回答
45389 浏览

knockout.js - KnockoutJS - 可观察对象的可观察数组

我想显示一个可编辑的项目列表,其中的每个项目都是可编辑的(有点像可编辑的网格,在某种程度上)。我正在使用 KnockoutJS。我不能只使用一个简单的 Observable Array,因为正如文档所述“一个 observableArray 跟踪数组中的哪些对象,而不是这些对象的状态”

因此,我创建了一个可观察对象的 observableArray(使用 utils.arrayMap),并将它们绑定到视图。但是,问题是如果我在屏幕上编辑数据,用户在屏幕上所做的任何数据输入更改似乎都不会生效。见http://jsfiddle.net/AndyThomas/E7xPM/

我究竟做错了什么?

​</p>