【问题标题】:ES6 Change object values inside functionES6 在函数内更改对象值
【发布时间】:2023-04-03 04:31:01
【问题描述】:

我有角度控制器,它注入一个数组:

class a{
    constructor(items){
        this.items = items;
        this.items[0].name = "abc";
    }

    edit(){
        this.items[0].name = "abc";
    })
}

如果我要更改此数组中一项的值,在构造函数内部,它将更改原始数组中该项的值。

如果我在编辑方法中改变了值,它现在不会改变原来的。

我能做什么?

谢谢。

【问题讨论】:

  • this 取决于edit 的调用方式
  • 从角度ng-click调用
  • 不应该在课堂上编辑吗?
  • 显然在其他地方为this.items 分配了一个新值。 var _this = this 没关系。
  • 在Angular promises中,数据在res.data,所以你想要res.data.name

标签: javascript angularjs ecmascript-6 arrow-functions


【解决方案1】:

如果你使用 angular,那么你应该使用 angular.copyangular.extend_this.items 中分配 items 而无需参考

var _this = this
_this.items =angular.copy(items);

【讨论】:

  • 已经试过了(对对象,不是对整个数组),没用。
  • 这与OP作者面临的问题无关。此外,何时为变量赋值取决于使用上下文。您不必每次都复制输入以将其分配给某个类属性。这甚至不是一个“考虑过”的最佳实践,所以这个答案根本没有解决问题。
猜你喜欢
  • 2017-01-25
  • 2017-04-01
  • 2021-12-11
  • 2016-10-30
  • 2018-09-12
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
相关资源
最近更新 更多