加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

角度:未检测到管道中的更改

发布时间:2020-12-17 06:52:12 所属栏目:安全 来源:网络整理
导读:我有这个管道,它将输入值乘以从服务检索到的其他值: @Pipe({ name: 'multiply'})export class MultiplyPipe implements PipeTransform { constructor(private service: StateService) { } transform(value: any,args?: any): any { return value * this.ser
我有这个管道,它将输入值乘以从服务检索到的其他值:

@Pipe({
    name: 'multiply'
})
export class MultiplyPipe implements PipeTransform {
    constructor(private service: StateService) { }

    transform(value: any,args?: any): any {
        return value * this.service.multiplier;
    }
}

用法:

{{ value | multiply }}

DEMO

这样可以正常工作,但是当服务的乘法值发生变化时,它不会触发任何变化检测,因此

{{ value | multiply }}

不再运行,将旧值保留在屏幕上.有什么建议可以修复吗?

解决方法

正如 Angular documentation中所讨论的,如 this stackblitz所示,强制管道被调用的一种方法是使其不纯:

@Pipe({
  name: 'multiply',pure: false
})

有关纯管道和不纯管道的更多详细信息,请参见this article.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读