gpt4 book ai didi

javascript - 更改一个对象的可观察属性会更改集合中所有对象的属性

转载 作者:行者123 更新时间:2023-12-02 19:35:14 24 4
gpt4 key购买 nike

我的 View 模型中有一个对象集合。我在将值绑定(bind)到 select 控件时遇到问题。该值是一个 JS 对象,而不是原始类型。当我在绑定(bind)集合中有多个对象并更改 select 控件时,所有其他对象的值都会更新为新选择的值。就像所有值都绑定(bind)到 foreach 绑定(bind)内的同一个实例。该错误似乎仅在插入新行时才会发生,而不是在简单地编辑现有行时发生。

我已经消除了很多复杂性,并在 JSFiddle 上提供了一个显示问题的示例。

http://jsfiddle.net/zero21xxx/5vgDy/

查看错误的步骤

  1. 从第 1 行的下拉列表中选择结算类型
  2. 从右侧的新下拉列表中选择“二”。
  3. 从第 2 行的下拉列表中选择结算类型
  4. 现在,选择框中的第 1 行和第 2 行都将设置为“One”。

我希望一行中的更改不会影响任何其他行。

最佳答案

如何设置它有点复杂,但是,我认为问题是,您的 id 不是您所期望的,

 function getValues(tabId) {
console.log("tabId " + tabId);
if (lookUp[tabId]) {

如果我将其添加到您的代码中,它会显示相同的 tabId,这意味着从外观上看您正在处理相同的对象。

如果我每次都更改 getValues

 function getValues(tabId) {
console.log("tabId " + tabId);
return [new DatabaseField(nextId(), "Name", "Attorney Name", DataType.STRING.id),
new DatabaseField(nextId(),
"Type", "Settle Type", DataType.DROPDOWN.id)];
}

我还将所有带有 [] 的可观察量更改为可观察数组...

那么它似乎可以工作。 fiddle ...http://jsfiddle.net/keith_nicholas/wmxJX/

关于javascript - 更改一个对象的可观察属性会更改集合中所有对象的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10988553/

24 4 0
文章推荐: javascript - JavaScript 中的 Cross <script> block 中哪些实体是可见的?
文章推荐: javascript - 匹配条件正则表达式
文章推荐: javascript - 每 5 个元素创建一个新对象
文章推荐: javascript - document.getElementById ("myId").InnerHTML 找不到
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com