[英]Use RxJS in an Angular library
我創建了一個角度庫“mylib”
我創建了一個使用rxjs中的BehaviorSubject Observable的服務。
例如
currentLanguage = new BehaviorSubject<string>(null);
我在mylib中有一個組件,它將在選擇輸入上設置更改事件的語言。
this.myService.currentLanguage.next('en');
構建“mylib”並在myapp
使用后......我可以從myapp訂閱myService
。
如果我更改select輸入的值,我可以看到事件,但是沒有下一個值發送到BehaviorSubject並且控制台中沒有錯誤。 所以我無法從mylib的組件中發出值更改。
然而......如果從myapp我發出下一個值..它的工作......
所以我的問題是為什么從自定義角度庫的一個組件中,不可能使用“next”但它來自使用該庫的組件......並且可以從應用程序的任何組件導入庫服務?
也許它可能與mylib.module.ts中的@NgModule有關,我可能需要在進口數組中導入rxjs? 我試着
imports: [CommonModule, FormsModule, BehaviorSubject]
犯錯誤
一個主意 ? :)
謝謝
麥克風
問題可能是lib和應用程序正在使用該服務的兩個實例。
確保您的服務中指定了“providedIn:'root'”。
例如:
@Injectable({
providedIn: 'root',
})
export class myService {
.....
}
還要確保使用'dist'目錄中的庫名稱導入服務,而不是使用相對路徑。
例如:
import { myService } from 'myLib';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.