Knockout 订阅可观察对象

2024-01-18

我有一个对象:

{ model: settings: { "FirstName": "Joe", "LastName": "Bloggs" } };

在我的视图模型中,我将设置设置为可观察的:

this.Settings = ko.observable(ko.mapping.fromJS(model.settings));

这使得FirstName and LastName也可观察到。

在我看来,我通过这样做来绑定:

<p data-bind="text: Settings().FirstName"></p>

从中读取值Settings I do:

`this.Settings().FirstName()`

当我想订阅时,问题就出现了FirstName OR LastName变化。

我知道我能做到this.Settings.FirstName.subscribe...但一旦你观察到两件事以上,那就很痛苦了。

有办法吗this.Settings.subscribe...?或者我应该使用自定义绑定?


我编写了下面的插件来帮助我处理这种情况:

https://github.com/ZiadJ/knockoutjs-reactor https://github.com/ZiadJ/knockoutjs-reactor

这是一个简单的用法示例:

 this.Settings.watch(function(root, trigger){
     var newValue = trigger();
 });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Knockout 订阅可观察对象 的相关文章

  • 使用自定义绑定处理程序输入文本水印

    我一直在尝试创建一个自定义绑定处理程序 我可以使用它为文本输入字段提供水印行为 By watermark我的意思是 向文本字段添加默认值 这些默认值在焦点时被删除 如果文本字段仍然为空 则在模糊时被替换 我已经设法让它工作 如 jsfidd
  • Knockout 中的 TextBox 数据绑定问题(提供小提琴)关键问题之一

    Step 1 在我的页面加载时 我使用自定义绑定在文本框中显示日期 Step 2 问题在于 当我尝试发布文本框中的内容时 我在控制器上得到的最小日期是错误的 即 01 01 0001 00 00 00 我的cshtml
  • Typescript 中此子范围的问题

    This is ALMOST和其他人一样this到目前为止 我已经读过范围界定问题 除了一个细微的差别之外 这使得提出这个问题变得有意义 imo 现在最初我的问题是范围this使用 Knockout 和 Typescript 因此给出以下内
  • Knockout ObservableArray 不更新 HTML Foreach

    所以我有一个可以正常工作的 observablearray 但 UI 没有更新 我读过很多人遇到这种类型的问题 但我没有看到 所以 HTML 是 tbody tr td span class label label success Yup
  • 使用 Knockout 使用多个字段/列和控件来过滤 ViewModel 数据

    我是 KnockoutJS 的新手 但到目前为止我很喜欢它 我想做的是使用表单上的多个字段 列和控件来过滤我的视图模型的数据 但我不知道该怎么做 让我 希望 进一步解释一下 我有一个 viewmodel 可观察的数据数组 其中填充了来自后端
  • Knockout.js——理解 foreach 和 with

    我一直在阅读 learn knockout js 教程并进行实验 有人可以解释为什么这有效吗 教程 单页应用程序 步骤 2 使用with chosenFolderData and foreach mails table class mail
  • 强制使用原生 Knockout 模板

    我有一个需要 jQuery tmpl 的页面 但我想使用本机淘汰模板 data bind foreach Comments 属性 因为我已经包含了 jQuery tmpl 所以淘汰赛的本机模板被禁用 有没有办法可以强制使用本机功能 Than
  • 对模板之一的 observableArray 进行排序

    我有以下视图模型 function instance id FirstName extend this id ko observable id FirstName ko observable FirstName 我在 observableA
  • knockoutjs通过点击事件获取元素id

    我正在使用 knockoutjs 目前我认为有些东西看起来像这样 img src images image1 png 这允许我获取视图模型中的元素 ID pressedTab function tab console log Element
  • KnockoutJS 中的最大值和数值验证

    如何实现最大值验证并检查可观察值是否为数字 例如 self MyInteger ko observable extend numeric 2 extend maxValue params 255 message MyInteger cann
  • 淘汰赛:自定义绑定处理程序上的 valueAccessor 与 viewModel?

    通过绑定属性 通过 valueAccessor 访问视图模型的值与从传递给处理程序的 init 和 update 的 viewModel 参数获取它们之间有什么区别 我一直认为答案是那些链接到 valueAccessor 的模型属性会自动设
  • Knockoutjs foreach 自定义绑定处理程序与 afterAdd

    我想构建一个自定义的绑定处理程序 ko bindingHandlers foreachWithHighlight 在afterAdd时具有高亮效果 来自文档 http knockoutjs com documentation foreach
  • Knockout JS 中的多个扩展器不起作用

    刚刚在KO中找到了出路 所以请温柔一点 每个扩展器单独工作 但是当我链接它们时 第一个 重置 不会触发 JavaScript ko extenders reset function target var initialValue targe
  • 将某些 observableArray 对象属性转换为 observable

    假设我有这个相同类型对象的数组 var people status 0 name name1 status 1 name name2 我不仅希望它是 observableArray 而且我只想观察每个对象的状态属性 想象一下对象本身可能会被
  • Knockout.js ViewModel 更改回调?

    我正在尝试在 Knockout js 应用程序中实现自动保存功能 有没有办法在 ViewModel 发生变化时分配回调 看看 Ryan Niemeyer 的聪明但肮脏的旗帜 http www knockmeout net 2011 05 c
  • 首选的客户端路由解决方案? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从外部文件加载淘汰赛模板,无需复杂的引擎?

    我找到了加载外部模板的引擎 插件和函数 但我想知道是否有更简单的方法来做到这一点 像这样的东西吗 模板 html 索引 html div div 这行得通吗 有什么 陷阱 吗 这是我用来加载包含模板集合的模板文件的方法 var loadTe
  • ko.applyBindings 上是否有某种回调可用?

    Using 淘汰赛 js questions tagged knockout js在我们当前的项目中 我们已经多次遇到过这一点 我怎样才能确保某些 Javascript 代码只被执行after页面上的所有绑定均已通过 Knockout 应用
  • Knockout 如何将对象绑定到复选框和单选框

    参考here http jsfiddle net SimonYong kf6U8 2 如何将对象 没有可观察的 绑定到复选框和单选值中 以便我得到的值 值和值 是一个普通对象 没有可观察的 HTML Selection List a cla
  • 带有淘汰赛js的隐形recaptcha

    我正在完成隐形验证码 但我在实现它时遇到问题 谷歌开发人员页面中的代码显示它应该是这样的

随机推荐