问题标签 [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.
jquery - Knockoutjs treeview 延迟加载:子节点不显示
我刚开始使用 knockoutjs,并且正在尝试构建动态树视图。为了简化,我删除了与问题无关的所有内容。树视图将由嵌套的 UL 标记组成。
的HTML:
编码:
所以我在两个级别绑定树视图(使用2个模板),但我只在“GetGroups”中检索一个级别(目的地存在,但是是一个空数组)。
单击组时,将在 RetrieveDestinations() 方法中检索目标,并且应该替换组中的空数组。但是,它们没有出现在我的树形视图中。
树视图的绑定应该是正确的,因为如果我在“GetGroups”中包含目的地,一切都会正确呈现。
javascript - ko.mapping 未定义
我按照这个例子http://jsfiddle.net/rniemeyer/badZb/。我只是将确切的代码复制并粘贴到示例应用程序中,它给了我这个错误:“ko.mapping is undefined”。有谁知道发生了什么?我的 ko.observable 和dependentObservable 工作得很好,只是 ko.mapping 不工作。
仅供参考:knockout.js 版本是 2.0 和 Jquery 1.7.1
knockout.js - 如何使用剔除映射克隆和重新绑定我的数据?
我需要将 ViewModel 中的主源中的一些数据克隆到对话框中。原因是用户可以取消对话,我不希望主人反映那些取消的更改。
我在对话框中创建了主数据的克隆副本,并且数据绑定设置为获取“localEdited.*”属性。如果用户单击确定,我会尝试将数据保存回主服务器(如果已编辑),否则推送数据(如果是新数据)。
以上目前有效,但是如果我单击主文件中的另一个项目,对话框不会显示更新的值。就好像 ko.mapping.fromJS 只工作一次,然后再也不会。它总是选择第一个值。我该如何解决这个问题?我觉得我需要重新绑定这些值,但 KO 的全部意义在于不必这样做。
我如何也将数据保留回父级。我想我可能有和上面一样的问题。
顺便说一句,我正在使用 KnockoutJS 1.2.1。
knockout.js - 如何使用 Knockout Mapping 将一个属性映射到另一个属性?
我将模型定义为
和 JS 中的 ViewModel 作为
另外,我有回调应该更新视图模型:
但是对于 ko.mapping 插件属性“名称”不等于“名称”。
如何定义从“名称”到“名称”的映射?
knockout.js - 有没有办法让映射异步填充模型的属性并自动更新视图?
我正在尝试通过 AJAX 加载模型属性的值,但在 AJAX 完成时,视图不会更新。
我正在使用淘汰赛 2.0.0 和淘汰赛映射 2.0.3。
jsFiddle:
HTML:
JavaScript:
在此示例中,item.code
显示 的值是因为它是在初始化视图模型时定义的,但item.value
从未显示 的值,因为它是异步填充的。
我已经尝试了 and 的各种排列ko.observable
,ko.mapping.fromJS
用于属性初始化和更新,但无济于事。
我想避免 - 如果可能的话 -item
手动初始化所有的属性。
我也知道我可以在 AJAX 调用中移动ko.applyBindings
,success
但我有不止一个这样的属性,要做到这一点,我必须实现一个队列系统,这是一种矫枉过正的做法。
我究竟做错了什么?正确的做法是什么?
jquery - Knockout JS 订阅方法问题
我们使用 KnockoutJS 来处理 UI 和 UI 中的移动部件。
所以这里是问题:
我们有网格,我们有过滤列。它过滤选项卡上的数据。最近我们收到了一个在 Enter 上过滤数据的请求。由于淘汰赛提供了自动触发我想要的操作的订阅方法。有没有办法让订阅方法的自定义实现可以在输入时触发。
mvvm - KnockOutJS - 单个视图中的多个 ViewModel
我在想我的应用程序现在变得非常大,太大而无法使用单个 ViewModel 处理每个视图。
所以我想知道创建多个 ViewModel 并将它们全部加载到一个 View 中会有多困难。需要注意的是,我还需要能够将X ViewModel数据传递到Y ViewModel数据中,因此各个 ViewModel 需要能够相互通信或至少相互了解。
例如,我有一个<select>
下拉菜单,该选择下拉菜单有一个选中状态,它允许我将所选项目的 ID 传递<select>
给单独 ViewModel 中的另一个 Ajax 调用...。
在单个视图中处理多个 ViewModel 的任何要点表示赞赏:)
knockout.js - KnockoutJS - 映射插件
我使用带有 Knockout 的映射插件,这很棒,对我来说很容易。
但是,如果我想在将值推送到视图之前对其执行一组操作怎么办?
假设我从 REST 调用中返回了一个“日期”字符串,我可以通过执行 viewModel.date 在我的视图中使用映射插件来引用它。
但是,如果我想在将数据字符串传递给映射插件之前对其进行编辑怎么办?
javascript - Knockout.js ko.mapping.toJS 在我看来没有刷新数据
我从服务器获取一个 json 对象并填充我的视图。然后我更改数据,将其推送回服务器。然后,我获取数据的新副本,希望它能够通过任何更改刷新我的视图。然而,这不会发生。TIA
这个初始加载工作正常。然后我做一些事情并更改其中一个可观察对象并将该数据推送回服务器。服务器获取更新,然后我重新获取数据,以便刷新视图(我知道我可以一步传回新数据,但这在代码中我还没有重构)。
控制台消息都显示返回的新数据,但我的视图永远不会更新。
jquery - 使用 JQuery UI 和 Knockout 过滤结果拖放
首先,这是一个 JSFiddle,它有我遇到的问题。
前提:
如您所见,我有一个输入框,您可以在其中输入用户名的过滤参数。
该代码还使所有用户都支持使用 JQuery UI 进行拖放。
经过一轮搜索,然后尝试拖动项目 - 一切都被拖动,而不是只有一个项目是可拖动的。
我想要达到的目标:
我想过滤一个用户列表,并让所有生成的用户都可以一个一个地拖动。
问题:
我将如何以不同的方式解决这个问题以避免这个问题,事实上 - 目前是什么导致了这个问题?
我的假设:
搜索后,knockout 可能会为我生成一组新的 Dom 对象(而前一组仍在内存中),我仍然有一些处理程序挂在某个地方,经过一轮搜索后,旧处理程序开始与新处理程序混淆? 在新的渲染完成后,我仍然希望拖动而不是根本不起作用。
干杯,拉里