问题标签 [knockout-3.2]

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

javascript - 在 knockoutjs 中嵌套组件

我有一个用于封装引导模式的淘汰组件。它工作得很好,除了当我尝试将任何内容插入到模式的正文中时。我的第一种方法是将 html 放入模态对话框的params.Content中,但我有一个难以转义嵌套引号的类型。我想做的只是嵌套下面的组件,并让<test>元素出现在模态体内。

页面的淘汰视图模型

记录管理页面

modal-dialog.js

0 投票
1 回答
44 浏览

knockout.js - Knockout.js 绑定在

我正在尝试在<html>站点的元素中添加绑定,但它似乎没有任何效果。

在 body 元素之外的元素中应用绑定是否有任何限制?

0 投票
1 回答
271 浏览

css - 单击 DIV 应用动态数据绑定以使用 HTML 输入编辑 CSS - knockout.js

我正在尝试编辑数组的各个元素。我有一个这样的 JSON 数组:

这些在淘汰赛中被转换为可观察的。每一个都绑定到一个 DIV 元素以显示在屏幕上。“left”、“top”、“height”和“width”是应用于每个属性的 CSS 属性。

当您用鼠标单击 DIV 包含的部分时,我正在尝试将元素绑定到 HTML 输入以编辑 CSS 值。你可以在下一张图片中看到这个想法:

样机图像 - 单击此处查看图像

代码如下:

我有两个问题:

  1. left 和 top 值的输入只接受整数值,我需要子字符串“200px”到 200 但总是收到错误:“.left is undefined”

    self.currentSelectedComponentLeft = ko.computed(function(){ var value = self.currentSelectedComponentIndex(); console.log(typeof value); //value=value*1; console.log(value); if (value) { return “TT”;}

  2. 主要问题...当我将元素单击到右侧的输入时,如何绑定 DIV 元素?我想我需要动态绑定,或者动态订阅,但是找不到动态双数据绑定这个问题的答案。

这是 HTML:

0 投票
1 回答
55 浏览

javascript - 将多个视图模型传递给组件 - 性能问题?

使用 knockout.js 组件我想知道将多个视图模型传递给一个组件而不是一个组件时性能是否会受到影响。

具有以下内容:

我正在考虑将整个 masterViewModel 变量传递给我的组件,以便能够从中访问所有视图模型:

如果我这样做而不是只传递一个视图模型,性能会受到不好的影响吗?

0 投票
2 回答
1464 浏览

knockout.js - 将文本绑定到全局函数

尝试绑定text到视图模型之外的全局函数会引发以下错误:

knockout.js:60 Uncaught ReferenceError: Unable to process binding "foreach: function (){return names }" Message: Unable to process binding "text: function (){return myFunction($data) }" Message: myFunction is not defined

在线复制

HTML

JS

相反,如果我扩展String对象并以下列方式应用函数,它会按预期工作:

扩展字符串对象:

在线复制

为什么是这样?难道没有更好的方法将全局函数应用于text绑定吗?

0 投票
2 回答
750 浏览

javascript - 没有 require.js 的 knockout.js 外部模板

我想知道是否有另一种在 knockout.js 中使用模板而不必require.js动态加载它们的方法。

它在向站点进一步缩小后增加了大约 20Kb,似乎我们正在加载一个相当大的库来做一些可能不需要太多代码的事情。

这就是我现在正在做的事情:

为此,我必须require.js在我的项目中包含并要求 text`:

0 投票
1 回答
476 浏览

knockout.js - 在 knockout.js 中替换普通 div 的模板元素

我正在尝试使用模板而不使用template标签,因为任何版本的 IE 都不支持此标签。

而不是这个:

我正在尝试使用:

在第二种情况下,我得到了错误:display is not defined.

什么是最好的解决方案?

我尝试添加data-bind: if: $data模板包装器,它似乎适用于复制,但不适用于我的真实应用程序。

0 投票
1 回答
4236 浏览

knockout.js - 在 knockout.js 中使用 required 属性

如何有条件required地在输入中设置属性?

必需的属性没有值。只要在场,就会被视为required。所以required="false"会使一些脚本失败。

我在文档中找不到类似的东西。我离得越近就是disabled绑定。

0 投票
1 回答
66 浏览

knockout.js - 使用 require.js 后不会识别 Knockout.js

在 knockout.js 之前调用 require.js 会引发以下消息:

未捕获的 ReferenceError: ko 未定义

假设我在组合文件的最顶部有 knockout.js,我有这个: