繁体   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