问题标签 [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 投票
1 回答
14436 浏览

knockout.js - 淘汰赛 - 使用 foreach 并一起排序

我无法将 foreach 绑定与排序结合起来。我有一个像这样绑定的列表:

Widgets 是一个简单的 obvservable 数组:

这很好地给了我我的“小部件”列表。如果我在这个列表中添加一个新的“小部件”,那么它会通过数据绑定动态地出现在列表中。

但是,一旦我向数组添加排序:

然后新添加的小部件不再出现在我的列表中 - 除非我重新加载页面。(此时排序工作得很好——如果我更新我正在排序的“订单”字段,那么我的列表中的项目将被动态重新排序)。

我怎样才能让排序与我的可观察数组中的新项目的动态更新很好地配合?

我正在使用 Breezejs 来检索我的数据,但是我认为这不会影响这种情况。

0 投票
1 回答
270 浏览

knockout.js - 使用敲除映射插件绑定数据数组

我有以下 JSON 数据:

]

我可以使用以下命令轻松地将其数据绑定到我的 HTML 页面:

这是我的 HTML:

现在我想使用淘汰映射插件来完成同样的任务。我尝试了以下方法:

这给了我一个错误 - 显然,因为我使用了 data-bind="foreach:donuts" ,它不再存在于我的视图模型中。那么如何更改我的 UI 或数据来工作呢?

另外,在使用映射插件时,说我想在甜甜圈数据中添加一个新对象,我该怎么做?

0 投票
3 回答
1718 浏览

knockout.js - 使用淘汰 observableArray 将多个项目添加到 Slick 网格

我正在使用淘汰赛自定义 bindingHandler 根据 rniemeyer 的示例将数据绑定到 slickgrid,当代码运行时,如果您单击“添加”链接,则使用 myObservableArray.push(newRow) 将一行添加到网格中,但是当您尝试通过“替换”链接替换网格中的所有数据,网格未更新,添加按钮停止工作。我正在尝试通过调用 myObservableArray(multipleRows) 来更新可观察数组,这是正确的做法吗?

示例:http: //jsfiddle.net/davidoleary/bwSmy/

0 投票
1 回答
162 浏览

function - 从可观察数组中删除的淘汰赛问题

我正在将数据绑定到我的 html 中。

以下是视图模型:

以下是html:

请注意我是如何对删除功能进行数据绑定的,并且这有效!但如果我执行以下操作:

好吧,这行不通。删除功能甚至没有受到打击。

有人可以告诉我我做错了什么吗?

0 投票
1 回答
95 浏览

knockout.js - 为什么我不能删除绑定后添加的可观察对象?

http://jsfiddle.net/scottbeeson/SRUKN/16/

单击左侧列表中的项目会将它们添加到右侧列表中。单击右侧列表中的项目应将其删除。它会删除第一个已经存在的项目,但不会删除添加的项目。我需要重新应用绑定还是什么?

0 投票
1 回答
50 浏览

knockout.js - 从更改的值创建一个数组 - 淘汰赛

我的阵列展出

我的数组是一个可观察的数组,我正在通过模板遍历它。

每次点击,访问值都会改变(null - 0 - 1)

我想要做的是,当访问值更改时,我希望能够仅获取更改的值( {"name": ..., "access": ...} 对更改的“访问” ) 而不是整个数组。我不知道该怎么做。

请帮忙。谢谢!

0 投票
3 回答
5003 浏览

javascript - 可观察对象的 Knockout.js 动态绑定

我正在尝试利用淘汰赛来创建一个可编辑的表格。我有一个 JSON 对象,其中包含标题和表格数据的集合。该表需要使用任何对象构建。它将遍历 JSON 对象以创建 ko.observableArray 和 ko.observables 来填充它。我已经能够做到这一点。我的问题是 ko.observables 没有被数据绑定。

这是我的 JavaScript 的一个片段:

这是我的 Fiddle http://jsfiddle.net/breck421/YFNLX/,它的工作达到了我之前描述的程度。

我不确定我正在尝试做的事情是否可能,并且真的很感激另一组对此的看法。

谢谢,

约旦

0 投票
1 回答
650 浏览

internet-explorer - IE 更快的 foreach

我使用淘汰赛 foreach 绑定来填充 UL。每次滚动到最后,我都会获取接下来的 25 个项目并将其添加到 UL。在 Chrome(最好的)和 Firefox(稍微慢一点)中,一切都运行得非常快,但 IE 10 显示与 Chrome 相同的数据需要大约 8 倍。要显示所有绑定的所有数据,Chrome 需要大约 50 毫秒。IE 需要将近 400。

有什么方法可以加快 IE 渲染速度?是否有某种方法可以手动插入项目并应用绑定,如果它可以使其更快。

我知道我不会从列表中删除任何元素。我只能替换整个列表。有什么办法可以利用它作为优势吗?

这是有约束力的

我用这个添加项目

0 投票
1 回答
646 浏览

knockout.js - 淘汰赛无法从模型内部访问 ObservableArray

这可能是非常基本的,但我似乎无法弄清楚。问题来了

我有一个带有可观察数组“self.product”的视图模型,并希望从嵌套模型中访问它,如下所示。当我运行它时,我得到一个产品不存在的错误。我没有包含代码,但是有一个 ajax 调用可以获取数据并将其推送到“产品”。同样在函数“test”上使用点击绑定会打印该值。

我虽然这可能是“自我”的范围问题,但由于我在标记中的 foreach 绑定中使用了“产品”数组,所以我不能只将 self.product... 更改为 var product。我怎么能做到这一点?

0 投票
1 回答
4491 浏览

knockout.js - 淘汰可观察数组推送仅添加第一个对象

我有一个可观察的数组。假设(对象)数据有Id、Name、Description

第 1 行和第 2 行工作正常。在第 3 行,调试点消失并且永远不会回来。