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

前端之家收集整理的这篇文章主要介绍了角度:未检测到管道中的更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个管道,它将输入值乘以从服务检索到的其他值:

@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.

猜你在找的Angularjs相关文章