问题标签 [knockout-mapping-plugin]
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.
javascript - 通过 AJAX 绑定选项时,是否可以将选择元素的默认值传递给 Knockout?
我需要<select />
通过两个不同的 AJAX 调用来获取 a 的当前值和可用选项(由于几个原因,我无法对它们进行排队/链接)。
我不知道这是否重要,但读取当前值的调用在每次读取可用选项之前完成。
使用 Knockout 2.0.0 和 Knockout Mapping 2.0.3 我用 绑定了选择data-bind="options: values, value: valueComputed"
,但我发现 Knockout 正在删除/忽略第一个 AJAX 调用设置的值,直到获取可用选项的调用完成才能设置当前值。
它是否正确?是否可以告诉 Knockout “这是当前值,当可用选项可用时选择它”?
经过几次测试后,我想出了一个问题:我没有将普通的 observable 绑定到 select 的值,而是使用了计算的 observable,我截取了该值,并且如果新值未定义,则不更改底层的 observable。
我在做坏事吗?
一个 jsFiddle 示例:http: //jsfiddle.net/KeNUU/
我正在使用的 JavaScript 代码:
knockout.js - KnockOut 映射分层 JS 对象
我正在尝试使用 KnockOut 映射插件创建视图模型,
这是对象,基本上下面是一个带有单词的句子。
我想要三个视图模型,
文章应该包含句子,一个句子应该包含单词
我想把它放在下面的视图中;
我什至不确定我想要实现的目标是否可行,但我想我需要映射,但我无法完成这项工作,
这是我的一些试验,也许有助于更好地理解我的问题, http://jsfiddle.net/sureyyauslu/2wTjy/6/
非常感谢提前...
javascript - 带有复选框和单击句柄的剔除列表绑定
这是我的 jsfiddle 用于说明:http: //jsfiddle.net/hawaii/gN6CT/10/
我有一个 json 对象列表,我想使用 jquery 模板将其绑定到 ul 中,在每个 li 中,我都有一个用于每个项目的复选框,以及项目详细信息。我希望它的工作方式是:
当用户单击复选框时,该项目将更新为选定列表(得到这个工作)
当用户单击项目的详细信息时,该项目将被选中,我将在右侧显示所有详细信息。这就是为什么我将项目详细信息放入元素中的原因。
正如您从小提琴中看到的那样,它没有按照我希望的方式工作,即使第一次应用 viewModel 也会调用单击绑定,并且当我单击复选框时,它也会调用单击事件。
请各位淘汰大师帮我解决这个问题。谢谢
html - Knockoutjs 验证和服务器验证
嗨,我是 Knockoutjs 的新手,我想发布一个表单,例如我有一个电子邮件地址,要求电子邮件地址必须是唯一的。
在服务器上,我检查电子邮件地址是否唯一,然后返回一个validationjson 类,例如
{ isEmailUnique: false, isPasswordStrongEnough: true; }
我如何通过 knockoutjs 验证以简洁的方式显示这些错误?
javascript - KnockoutJS:使用映射更新/插入数据到视图模型
我一直试图弄清楚这一点已经有一段时间了。我找不到任何解决此问题的方法,但如果我错了,请纠正我。
问题:我有来自 JSON API 的数据,带有嵌套的数组/对象结构。我使用映射最初用我的数据填充模型。为了更新这一点,我想在新数据到达时扩展模型,或者更新现有数据。
据我所知,映射选项键应该为我做这个技巧,但我可能误解了映射选项的功能。
我已经把这个例子所代表的问题归结为:
小提琴:http: //jsfiddle.net/mikaelbr/gDjA7/
如您所见,第一行插入数据。都好。但是当我尝试更新时,它会替换内容。第三个映射也一样;它替换了内容,而不是扩展它。
我用错了吗?我应该在使用映射之前尝试“手动”扩展内容吗?
编辑解决方案:
我通过使用第二个辅助数组存储所有当前模型解决了这种情况。在新数据上,我扩展了这个数组,并更新了视图模型以包含累积的项目。
在更新时(在我的例子中是 WebSocket 消息),我遍历模型,更改了相关项目的内容,并使用方法 valueHasMutated() 将更改的值通知 Knockout 库。
knockout.js - 使用 ko.mapping.fromJS 将奇怪的行为映射数组到 observableArray
我正在尝试使用敲除映射插件将对象数组映射到 observableArray。不知何故,这似乎对我根本不起作用。
我刚刚使用 Crome 控制台进行了测试以验证:
我究竟做错了什么?如果我尝试以下
这一切都很好。唯一的区别是我只传递一个对象而不是一组对象。但是,如果我正确阅读了映射插件的文档,它应该能够处理从普通数组中创建 observableArray 的问题。
谢谢你的帮助,
安德烈亚斯
.net - 使用映射插件时未从服务器更新 Knockout.js 可观察数组
我在使用 Knockout.js 及其映射插件时遇到了一些问题。本质上,我想从没有数据开始,然后在页面加载时发出 Ajax 请求以加载信息。我知道 Ajax 请求正在按预期工作,因为我正在将返回的数据记录到控制台。
控制台正在正确记录数据。所以我知道 Ajax 请求工作正常。
l
查看标记:
我什至试过打电话:
但这只会让事情变得更糟,因为 KO 抱怨没有设置绑定。
谁能看到我做错了什么?最终我希望视图模型有更多的事件连接,我知道这将是另一个挑战。但是现在我什至无法在 Ajax 请求完成时正确更新绑定。
离开这里的教程:http: //knockoutjs.com/documentation/plugins-mapping.html
- - - - - - - - - - 更新 - - - - - - - - - - - - -
我可以通过参考这个 StackExhange 帖子来回答我自己的问题:
问题是我需要一个空的视图模型才能工作。
knockout.js - KnockoutJS - 如何创建观察映射对象的可观察属性?
我在这里创建了一个简单的演示来演示这个问题:
http://jsfiddle.net/boblauer/eCugY/
基本上,我希望我的 userUpdated 函数在我更新用户属性时运行,但它只在页面加载时运行一次。
任何帮助表示赞赏。
knockout.js - 使用 fromJS 更新后选项文本变为函数字符串
为什么从 ko.mapping.fromJS 更新值后,选项文本会转换为函数字符串?
示例:http: //jsfiddle.net/tYnc6/24/
html:
Javascript:
请注意,按下更新后,选项文本变成了一个函数。
ajax - KnockoutJS 更新 observableArray AJAX 的正确方法
在 KnockoutJS 中,每次运行 AJAX 命令时更新 JSON 数据的 observableArray 的正确方法是什么?
现在,我正在使用 viewmodel.items([]) 之类的东西来清空数组,然后用来自服务器的 JSON 数据重新填充它。没有使用 KnockoutJS 映射插件(这可能是唯一的方法)正确的路径是什么?
我的服务器逻辑每次都会发送一些相同的数据,所以我不能只是迭代并将项目推送到数组中,除非我想要重复。
//// 添加我今天的做法 ////
我不确定我为什么要这样做,但这正是我最初想出如何更新的方式。所以基本上,就像我之前说的,我得到 JSON 数据,然后我把它传递给这样的东西:
对于 JSON 数组中的每个节点。正如你所看到的,我在那里有一些自定义的可观察对象,它们会随着每条传递的数据而构建。也许这是错误的方法,但到目前为止它的效果很好。