我有以下几点:
<ion-input slot="end" (click)="presentPicker('custom1')" value {{conversion.formatDisplayedTime(dta.custom1)}}" readonly="true" type="text"></ion-input>
<ion-icon *ngIf="conversion.checkTimeNotNull(dta.custom1)"
(click)="appendTotalTime('custom1')" color="success" slot="end" name="checkmark-outline"></ion-icon>
可以看到这个图标有ngIf conversion.formatDisplayTime(),它在页面加载的时候被调用。我想知道当上面输入的值改变了,如何重新呈现它?有办法链接它吗?
谢谢大家
1条答案
按热度按时间jmp7cifd1#
这个问题可能有多种原因,但要摆脱它,并有一个干净的代码,你应该知道一些事情。
绑定一个方法/函数的值是一个错误,当然有例外,事件绑定(如
(click)="onClick"
)是完全正确的。但是像[class]="getClass()"
或<p> {{getText()}} </p>
这样的绑定真的很脏。这是因为angular无法知道函数结果的值何时会改变,所以它会在无限循环中调用它,即使它总是相同的结果。执行这种绑定的最佳方式是使用一个重要规则强制使用属性:仅在更改输入时更改结果。对于需要可观察值、主题...
在你的例子中,我认为你正在尝试格式化一个日期。格式化tempate而不改变值的最好方法是Angular 管道,特别是Angular DatePipe。如果它不适合你自己的使用,你可以很容易地创建你的自定义管道,有很多教程,这是被动的,因为Angular 将重新计算转换值只在输入改变。
希望这对你有帮助。