knockout.js - KnockoutJS:为现有模型分配一个新模型,例如(model.order = neworder)不会改变视图中的值,为什么?
问题描述
我有这个淘汰模型,它有一个具有很多属性的可观察对象
model.object{}
而不是像这样单独更改属性:
model.object.property1("cool");
我决定将它重新评估为一个新对象
model.object = new object;
当我检查控制台时,它更新了现有的模型对象,但是视图中的绑定
<span class="ml-1" data-bind="text:object.property1">10</span>
没有改变。
为什么是这样 ?
解决方案
那是因为代码ko.applyBindings()
已经将对象绑定到了 html,而且它只发生了一次。如果您这样做,绑定将丢失model.object = new object;
。
如果要在一行中更新整个对象,可以尝试使用映射插件:
ko.mapping.fromJS(objectWithSamePropertiesAndNewValues, model.object);
推荐阅读
- node.js - 如何让 Angular HTTP Post 等待节点 js 响应
- hyperledger-fabric - Hyperledger Fabric 中的批量更新
- php - 如何在 PHP 中使用 SPARQL 在本地查询 rdf 文件
- java - java 如何在同名目录中创建.txt
- macos - 通用 ctags YAML 支持
- python - Python 有标准的 PTS 阅读器或解析器吗?
- java - 使用 MavenXpp3Reader/MavenXpp3Writer 写入 pom 文件时保留/保留 pom xml 结构[元素顺序]
- android - 使用定期工作管理器每 30 秒后生成通知
- kotlin - 当声明 kotlin 大于或等于
- prolog - Prolog:为什么输出[x,y|_]中有竖线和下划线?