我想在条件发生变化时仅运行一次操作(变为
true
),例如
areAllDetailsLoaded() => run a function
我想将其编码为类似的信号
areAllDetailsLoaded=signal(false);
并将其用作
effect( () => {
if (areAllDetailsLoaded()) {
storage().getDetails() ....... run code
我面临的问题是,显然信号
storage
也被考虑在内,并且每当 storage()
更改代码运行时。这不是我想要的。将 areAllDetailsLoaded
更改为 true
后,代码应该只运行一次。
老实说我已经没有主意了。或者也许我对角度信号的理解还不够好。因此,锅炉模板模式将受到赞赏 - 最好使用信号。
以下是实现您想要的目标的两种方法:
将私有标志与 ngOnChanges 生命周期挂钩一起使用
使用 RxJS 中的BehaviorSubject