问题标签 [knockout-2.0]

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 回答
1404 浏览

html - 是否有可能使用 Knockout 的值绑定进行脚本注入?

我认为淘汰赛可以处理这种情况,但想确认一下。如果使用带有输入/文本区域之类的表单控件的值绑定,是否没有脚本注入攻击的危险?

或者您是否需要做一些事情来确保在将值设置到视图模型之前对其进行编码?

0 投票
2 回答
1555 浏览

knockout.js - 使用嵌套的 foreach 导致停止脚本错误的 knockoutJS

我正在使用 knockout.js 来呈现我的视图,我正在从服务器获取数据并像这样绑定..

我的观点......我已经修剪了一些......但绑定是一样的......

数据包含一个对象数组,每个对象中都有另一个数组……大约有 500 个项目需要渲染。

虽然我一直在测试,但我没有遇到任何问题,但是在部署时,我不知道它是否是慢速电脑,但他们得到了“这个脚本正在执行慢 - 停止?” 信息。如果您单击“否”几次,它将呈现。

在淘汰赛中处理大数据集的技术是什么?理想情况下,我希望渲染异步完成,让用户在忙于工作时继续他们的事情......

这些属性实际上不需要是可观察的——这是一次渲染……什么都不会改变。为了方便起见,我使用了映射 API。

更新:好的,所以我进行了更改,不再使用映射 api - 页面正在加载,但仍然很慢......有什么想法吗?改变:var viewModel = data;

0 投票
1 回答
1143 浏览

javascript - 输入 keydown 事件是触发另一个元素的按钮单击

我希望我在这里遗漏了一些明显的东西......

这只发生在 IE9 中(看图)

我正在使用 KnockoutJS(2.1 RC) 和 JQuery(1.7.2)

我在页面上有一个输入元素(实际上有很多),每当我按下“enter”键时,它都会触发click页面上第一个按钮元素的事件。

http://jsfiddle.net/HZymG/2/

0 投票
2 回答
1527 浏览

knockout.js - 如何使用 knockout.js 将多个更改作为“单元”触发

我有一个小应用程序通过为组合框(选择)元素中的不同属性提供多种选择来过滤项目列表。一切工作正常选择和取消选择单个组合框元素,但由于我向“重置过滤器设置”引入了一个必需的按钮,它将所有组合框元素重置为空,我的性能很差。似乎每条修改组合框的语句都在触发完整列表的刷新。

我如何告诉敲除停止更新可观察对象,将所有组合框元素重置为 null,然后告诉敲除恢复更新或最初自己触发更新。

有任何想法吗?

谢谢安德烈亚斯

0 投票
4 回答
10061 浏览

select - Knockoutjs(2.1.0 版):将布尔值绑定到选择框

我想使用 KO v2.1.0 将布尔值绑定到选择元素,但显然它不能按预期工作。

HTML 代码:

JavaScript 代码:

所以我希望选择框以初始值进入“关闭”位置,false但它处于“开启”状态。如果我输入 state:ko.observable("false")这将是正确的,但这不是我想要的。任何人都知道如何将布尔值绑定到带有 KO 的选择框?

jsfiddle:https ://jsfiddle.net/greenlaw110/Ajm58/

0 投票
2 回答
115 浏览

javascript - Webkit 控制台是否不知道如何在 KnockOut 中使用 observables?

让我一步一步解释

  1. 我的一个功能是console.log()在模型中对 Knockout observable 进行操作
  2. 控制台说Array(0)
  3. 但是,此时我单击array(0)它显示项目。所以数组中没有项目是不正确的
  4. 在我Console.log()和我点击 之间的那一刻array(0)observableArray()已经填满了项目,因此不再是空的。

我的问题是,控制台的这个功能错了吗?它应该实际显示项目,还是只显示一个空数组。为什么会发生这种情况?

或者反过来看,当控制台中有 50 个项目时,控制台是否会array(0)更新array(50)

我该如何克服这个问题?使用它的代码片段:

0 投票
1 回答
1322 浏览

javascript - 淘汰赛 JS 错误:“提交绑定的值必须是函数”

我已经设置了这样的视图模型:

在我看来,我在模板中有这个:

我收到一个错误“提交绑定的值必须是一个函数”,以便映射到 voteOnItem,但 voteOnItem 显然是一个函数......知道为什么会出错吗?

0 投票
1 回答
1302 浏览

knockout.js - 提供带有敲除重复的点击索引

我正在尝试为单击处理程序提供一些单击链接。由于某种原因,它提供了整个淘汰模型,而不是 $index。这是jsfiddle:http: //jsfiddle.net/yaroslavya/hfWs8/13/

0 投票
6 回答
40574 浏览

javascript - Knockout.js 使每个嵌套对象都成为 Observable

我使用 Knockout.js 作为 MVVM 库将我的数据绑定到某些页面。我目前正在构建一个库来对 Web 服务进行 REST 调用。我的 RESTful Web 服务返回一个简单的结构:

我有一个可观察的主要父母,myObject. 当我做

中的可观察值myObject是:

  • id
  • name
  • surname

我怎样才能使details(理论上结构中的任何对象都是可观察的)?我需要这种行为,以便我可以在细节上设置一个计算出的 observable,并在任何内部数据发生变化时立即引起注意。

我已经设置了一个基本的递归函数,它应该可以解决问题。当然,myObject.details它不会成为可观察的。

我很确定这是关于不正确的引用,但我该如何解决这个问题?谢谢你。

0 投票
2 回答
7375 浏览

javascript - 大规模 KnockoutJS 应用架构

我喜欢 KnockoutJS,但一直在努力寻找用它构建大型 Javascript 应用程序的最佳方法。

现在我处理代码的方式是构建一个根视图模型,该模型通常从母版页级别开始,然后在此基础上进行扩展。我只ko.applyBindings()在主视图上。这是我的示例代码:

我只是担心,因为这是一个树结构,如果我需要插入一个双母版页或类似的东西,这将是非常麻烦的重构。

想法?

编辑

我知道您可以将绑定应用于单独的元素以更改绑定的范围但是如果我有嵌套的视图模型怎么办?