gpt4 book ai didi

javascript - Js Observable 设置属性和子属性

转载 作者:行者123 更新时间:2023-11-28 06:44:10 25 4
gpt4 key购买 nike

如何对具有数据链接到表单元素的子属性的对象进行可观察的更新?

var app = {
formData: {
selectedThing: "thingValue1",
selectedPlace: "placeValue1"
}
};



$("#btnUpdate").on("click", function(){
var replacementForm = {
selectedThing: "thingValue2",
selectedPlace: "placeValue2"
}
$.observable(app).setProperty("formData", replacementForm);
});

$("#content").link(true, app);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="http://www.jsviews.com/download/jsviews.js"></script>

<div id="content">
<input data-link="formData.selectedThing trigger=true"/>
<br/>
<input data-link="formData.selectedPlace trigger=true"/>
</div>

<button id="btnUpdate" type="button">Update</button>

我有一些输入字段数据链接到对象的属性,当用户按下按钮时,所有这些字段都需要使用对象进行更新(从服务器作为 JSON 接收,反序列化为与以下内容相同的对象)表单元素底层的数据对象。)这是我的 jsfiddle: http://jsfiddle.net/xpe1ds0a/

最佳答案

https://stackoverflow.com/a/32339038/1054484 回答“克隆”

它不起作用的原因是因为您使用的是“深层路径”formData.selectedThing - 默认情况下,它仅在叶级别“监听”可观察的更改,而不是更深层次的更改。要选择同时监听 formData 对象中的更改,而不仅仅是叶 selectedThing 属性,您需要将 . 替换为 ^ 表示您想要聆听路径中更深层次的内容:

<input data-link="formData.selectedThing trigger=true"/>
<input data-link="formData.selectedPlace trigger=true"/>

请参阅本文档主题中的路径:叶更改或深度更改部分: http://www.jsviews.com/#observe .

另请参阅本主题中的示例,例如示例:带有普通对象和数组的 JsViews:http://www.jsviews.com/#explore/objectsorvm .

在这里更新了 jsfiddle:http://jsfiddle.net/xpe1ds0a/1/

关于javascript - Js Observable 设置属性和子属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com