跳到主要内容

RxDBEntityChangeDirective

Defined in: rxdb-angular/src/rxdb-change-detector.directive.ts:61

RxDB 实体变化指令 如果你使用了 changeDetection: ChangeDetectionStrategy.OnPush 那么正在输入的变化不会触发 angular 渲染机制,使用这个指令可以实现实时渲染

Example​

当修改实体时,需要在多个地方预览修改变化时,可以使用这个指令

<!-- 每次 patch 都立即重渲染 -->
<div [rxdbChangeDetector]="todo">{{ todo.title }}</div>

<!-- 输入停止 200ms 后才重渲染 -->
<div [rxdbChangeDetector]="todo" [debounceTime]="200">{{ todo.title }}</div>

Remarks​

debounceTime 与 auditTime 单位均为毫秒,默认 0; 两者同时设置时串联生效,顺序为 debounceTime → auditTime(RAN-015)。

只有正有限值才会挂入管道:0(默认)、负值、NaN、Infinity 一律视为 禁用对应 operator。两个窗口都禁用时 patch 同步透传,OnPush 视图能在当前 变更周期内完成 markForCheck(RAN-011)。

Constructors​

Constructor​

new RxDBEntityChangeDirective(): RxDBEntityChangeDirective;

Defined in: rxdb-angular/src/rxdb-change-detector.directive.ts:92

Returns​

RxDBEntityChangeDirective

Properties​

auditTime​

readonly auditTime: InputSignal<number>;

Defined in: rxdb-angular/src/rxdb-change-detector.directive.ts:90

采样窗口,单位毫秒。默认 0 表示不采样。

Remarks​

语义同 RxJS auditTime:窗口内只放行最后一个值,可为持续输入提供稳定的刷新节流。 与 debounceTime 同时设置时两者串联,管道顺序为 debounceTime → auditTime。

仅正有限值生效;0、负值、NaN、Infinity 表示不挂入该 operator(RAN-011)。


debounceTime​

readonly debounceTime: InputSignal<number>;

Defined in: rxdb-angular/src/rxdb-change-detector.directive.ts:79

防抖窗口,单位毫秒。默认 0 表示不防抖(每次 patch 都同步触发一次变更检测)。

Remarks​

语义同 RxJS debounceTime:安静满该时长才放行,持续输入期间不触发渲染。 与 auditTime 同时设置时两者串联(先 debounce 再 audit),不是二选一。

仅正有限值生效;0、负值、NaN、Infinity 表示不挂入该 operator(RAN-011)。


rxdbChangeDetector​

readonly rxdbChangeDetector: InputSignal<any>;

Defined in: rxdb-angular/src/rxdb-change-detector.directive.ts:68

要监听的实体实例。为 undefined 时不建立订阅(可安全地绑定尚未加载的实体)。