【发布时间】:2017-06-09 12:28:22
【问题描述】:
我正在尝试在我的服务中创建一个变量,每当我注入此服务时都可以访问该变量。但是,我无法填充 BehaviorSubject 类型的 login$。我检查了this 和this,但我很难理解它是如何工作的。
组件
this.loginService.login = user.value.username; // OK
this.loginService.pass = user.value.password; // OK
this.loginService.emitLogin(user.value.username); // UNDEFINED - user.value.username is input field of form group
登录服务
export class LoginService {
public login: string;
public pass: string;
public login$ = new BehaviorSubject(this.login);
emitLogin(value: string) {
this.login$.next(value);
}
constructor(private http: Http) { }
}
另外,我想在我的DriverService 中使用login$。这是我到目前为止所做的:
DriverService
export class DriverService {
private login;
constructor(private http: Http, private loginService: LoginService) {
this.loginService.login$.subscribe(value => {
console.log(value);
this.login = value;
});
}
}
我怎样才能正确填充,并使其在其他服务中可用?
谢谢
【问题讨论】:
-
this.login最初是undefined... :) 尝试使用public login: string = ''。
标签: angular typescript behaviorsubject