【发布时间】:2019-05-03 16:15:12
【问题描述】:
我将 ngModel 值绑定到角度百分比管道,更新 ngModelChange 并将 updateOn 设置为模糊。它工作得很好,除非再次输入相同的值。再次输入相同的值时,管道不会检测到更改,并且该值显示为小数而不是百分比。我曾尝试将百分比管道重新创建为不纯管道,但这不起作用。即使值与以前的值相同,如何强制管道检测更改?
尝试让管道返回WrappedValue.wrap(this._latestValue);
尝试在更改功能中运行this._ref.detectChanges()
<input placeholder="Percentage" type="text"
[ngModel]="account.percentage | percent: '1.0-2'"
(ngModelChange)="updateAssignments($event)"
[ngModelOptions]="{updateOn:'blur'}" class="ta-r" />
updateAssignments($event) {
const cleanEvent = Number($event.replace(/[^\d.]/g, ''));
account.percentage = (cleanEvent / 100);
}
期望值以百分比格式显示。重新输入后显示十进制值。
【问题讨论】:
-
我不明白为什么它不起作用......如果管道是纯净的有什么关系?相同的输入相同的输出对吗?管道刚刚停止工作了吗?
-
嘿mah koreh gever?如果它是纯的,它只在输入更改时运行管道,如果它不纯,它运行每个更改检测周期。
-
我已经解决这个问题好几天了。有些东西很可疑。我的情况完全一样,除了我使用 (blur) 并有一个条件管道: 你知道怎么做吗这份工作?
-
@verynear 将接受的答案设置为 ysf,如果您有时间并且该解决方案适合您。
标签: angular angular6 angular-pipe angular2-changedetection angular-changedetection