簡體   English   中英

在Angular庫中使用RxJS

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM