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