使用嵌套 DIV 嵌套多个 VM

2023-12-15

我遇到嵌套 div 不会与虚拟机绑定的情况。有什么想法吗?我正在尝试以下操作,但它打破了任何想法?

<div id="div1">
   <div id="div2">

   </div>
</div>

如果我尝试这样做,效果很好:

<div id="div1">
</div>

<div id="div2">
</div>

JavaScript:

ko.applyBindings(vm1, document.getElementById('div1'));
ko.applyBindings(vm2, document.getElementById('div2'));

有任何想法吗?


当你绑定时div1它将绑定一切,包括其中的内容div2。当你绑定时div2它将再次绑定元素。这不是一个好情况,因为元素将附加多个事件处理程序。否则,applyBindings 之一可能会出错,因为元素不希望绑定到不同的视图模型。

这里的文章列出了一种保护内部元素不被外部调用绑定的方法:http://www.knockmeout.net/2012/05/quick-tip-skip-binding.html

另一种选择是使用单一视图模型,例如:

var viewModel = {
  vm1: vm1,
  vm2: vm2
};

ko.applyBindings(viewModel);

然后,像这样绑定:

<div id="div1" data-bind="with: vm1">
   <div id="div2" data-bind="with: $root.vm2">

   </div>
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用嵌套 DIV 嵌套多个 VM 的相关文章

  • 两个相互依赖的字段的淘汰验证

    考虑下面的代码 var MyObjectModel function myObject var self this self myNumber1 ko observable myObject number1 trimmed self myN
  • 如何让 ko.compated 处理对象内的可观察值

    我有一个相当简单的视图模型来保存数据数组并获取一个我想用来过滤数据的字符串 我有一些非常简单的标记来渲染它 如下所示 section class task list ul li li ul section
  • 使用 knockout.js 防止双击按钮

    禁用按钮以便 Knockout js 不会发生双击的最佳方法是什么 我有一些用户快速点击导致多个 ajax 请求 我认为 knockout js 可以通过多种方式处理这个问题 并希望看到一些替代方案 使用信号量 旋转锁 基本上 您计算一个元
  • 重新评估仅依赖于可观察数组的淘汰赛计算

    我的 Appmodel 由一系列可观察的评论组成 self comments ko observableArray Default Value is an empty array Here comes some code to initia
  • 使用来自服务器和 ko.mapping 创建函数的元数据处理任意选项

    我有一个视图模型 其中一些可供选择的属性值由其他属性决定 这是通过requires field var clusterOptions name None sku 0 price 0 name Standard MySQL Cluster s
  • 敲除映射导致堆栈溢出

    我正在尝试淘汰赛和映射插件 并想知道为什么这不起作用 我有一个要使用映射扩展加载的视图模型 function todoListViewModel data ko mapping fromJSON data todos TodoItem op
  • 淘汰 foreach 不会清除新虚拟机上的先前条目

    我有一个模态形式 其中有两个绑定到可观察数组的嵌套列表 每次我单击按钮打开模式时 这两个嵌套列表都不会清除它们以前的数据 即使我为整个事物生成了一个全新的视图模型 我最终在这两个列表中得到了重复的 和三次的 等等 项目 如何确保当我给这个东
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • KnockoutJS 中的最大值和数值验证

    如何实现最大值验证并检查可观察值是否为数字 例如 self MyInteger ko observable extend numeric 2 extend maxValue params 255 message MyInteger cann
  • Knockout.js - 数据绑定文本默认值

    在 knockout js 中 我有一个非常标准的字段 如下所示
  • Knockout JS - 如何正确绑定 observableArray

    请看一下这个例子 http jsfiddle net LdeWK 2 http jsfiddle net LdeWK 2 我想知道如何绑定可观察数组的值 我知道上面例子中的问题 就是这一行 p Editing Fruit p
  • 声明为对象文字与函数的剔除视图模型之间的区别

    在knockout js中 我看到视图模型声明为 var viewModel firstname ko observable Bob ko applyBindings viewModel or var viewModel function
  • Breeze.js 查询不更新淘汰赛视图

    我正在通过 Breeze js 查询数据 第一次运行良好 第二次视图未更新 html a Order by Newest a a Order by Score a div ul li strong span span strong span
  • 为什么 afterRender 从未被调用?

    看一下下面的 HTML 示例 这是一个简单的KOforeach绑定和一个将新项目添加到的按钮observableArray 添加工作正常并且新项目出现 但是 那afterRender方法永远不会被调用 不会在初始绑定之后 也不会在添加 和呈
  • 淘汰foreach绑定无序列表

    首先 圣诞快乐 希望圣诞节那天没有其他人在工作 除非他们是出色的专家并且真的很想帮助我 我正在使用神话般的jQuery 列导航插件 http code google com p jquery column navigation 以多列方式向
  • Knockout.js ViewModel 更改回调?

    我正在尝试在 Knockout js 应用程序中实现自动保存功能 有没有办法在 ViewModel 发生变化时分配回调 看看 Ryan Niemeyer 的聪明但肮脏的旗帜 http www knockmeout net 2011 05 c
  • ko.applyBindings 上是否有某种回调可用?

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

    我想显示来自 allDoorColorStandard 的图像 HTML 单击 颜色数据 div 我想更新图像 在警报中 我正在获取图像 URL 现在需要绑定到图像标签中 div img class mappimg width 45 hei
  • 淘汰赛中的lostfocus/onblur 事件

    我想在绑定到的淘汰可观察对象上执行一个事件input 当控件失去焦点时 即使没有输入任何内容 也应该执行此函数 我尝试更改事件绑定 但当用户离开控件而不输入任何内容时 它不会触发 我尝试了 mouseout 事件 但只有当用户在失去焦点后单
  • 删除克隆元素上的淘汰赛 js 绑定

    我正在使用 knockout js 模板绑定功能将项目集合渲染到元素

随机推荐