[英]ChangeDetectorRef instance in Angular
我在一個 Angular 項目中有一個組件和一個常規的 TypeScript 類。 該組件擴展了類。 兩者都有一個獨立的 ChangeDetectorRef 實例。 像這樣的東西:
import { ChangeDetectorRef } from '@angular/core';
export class MySuperClass {
private cdr: ChangeDetectorRef;
constructor() {}
// .. other code here
}
在另一個文件中:
import { ChangeDetectorRef } from '@angular/core';
export class MyComponent extends {
@Component({...})
constructor(private cdr: ChangeDetectorRef) {
super();
}
// .. other code here
}
讓我感到困惑的是,從超類中使用的 ChangeDetectorRef 實例即使沒有顯式注入也沒有實例化也能正常工作。
這種行為是由於 ChangeDetectorRef 的性質還是 TypeScript 中繼承的工作方式的性質,還是完全其他原因?
當角注入時
private cdr: ChangeDetectorRef
進入 MyComponent 它實際上運行在他父親擁有的相同參數上。
如果您單獨創建 MySuperClass 的實例,或者如果您更改 MySuperClass 的 cdr 參數名稱,則它們都不會保存相同的 ChangeDetectorRef 上下文
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.