在angular中,是否可以在模板内部创建复制对象?

在angular中,是否可以在模板内部创建复制对象?,angular,angular2-changedetection,Angular,Angular2 Changedetection,我有一个类似的代码: 现在,在我的应用程序中,英雄数组从不更改引用,只需更新自己的值 所以,“英雄”也从来没有一个新的参考 但是,我希望组件“我的comp”采用OnPush策略。所以我需要@Input CurrentHero每次都有新的引用,这是不可能的 有没有可能将英雄复制到十字牌中,成为新的推荐人 比如: 提前感谢。如果您使用不变性,那么这将是一种反模式 您应该做的是,当您更改英雄的值时,您应该始终将新对象返回到英雄变量 我不知道你如何改变英雄个人属性的值,但是如果你这样做 chan

我有一个类似的代码:


现在,在我的应用程序中,英雄数组从不更改引用,只需更新自己的值

所以,“英雄”也从来没有一个新的参考

但是,我希望组件“我的comp”采用OnPush策略。所以我需要@Input CurrentHero每次都有新的引用,这是不可能的

有没有可能将英雄复制到十字牌中,成为新的推荐人

比如:



提前感谢。

如果您使用不变性,那么这将是一种反模式

您应该做的是,当您更改英雄的值时,您应该始终将新对象返回到
英雄
变量

我不知道你如何改变英雄个人属性的值,但是如果你这样做

changingHeroes(){
让newHeroes=JSON.parse(JSON.stringify(this.heroes));
新英雄[0]。某物=123;
这个。英雄=新英雄;
}

注意
JSON.parse(JSON.stringify(this.heroes))
这是对对象进行深度复制。像
{…this.heroses}
一样传播它将保留对该数组中每个单独对象的旧引用。

因此我理解从模板执行此操作是不可能的,对吗?虽然这样做很方便,但不允许这样做,如果您尝试,它将被检测为语法错误。但是,如果您不想使用我的答案解决方案,您可以创建这样做的方法并返回它。有什么比这更适合你