Angular 角度2不工作
我试着打开模态窗口,在不同的组件中有它的模板和逻辑。我想通过订阅一些可观察到的内容来实现这一点,但它不起作用。这是我的密码 要从中激发模态的组件方法Angular 角度2不工作,angular,rxjs,Angular,Rxjs,我试着打开模态窗口,在不同的组件中有它的模板和逻辑。我想通过订阅一些可观察到的内容来实现这一点,但它不起作用。这是我的密码 要从中激发模态的组件方法 import { Component, OnInit, EventEmitter } from '@angular/core'; import { MaterializeAction } from 'angular2-materialize'; import { Credentials } from "../shared/models/creden
import { Component, OnInit, EventEmitter } from '@angular/core';
import { MaterializeAction } from 'angular2-materialize';
import { Credentials } from "../shared/models/credentials.interface";
import { UserService } from "../shared/services/user.service";
import { Router, ActivatedRoute } from "@angular/router";
import { LoginComponent } from "../login/login.component";
import { ModalService } from "../shared/services/modal.service";
@Component({
selector: 'app-header',
templateUrl: './header.component.html',
styleUrls: ['./header.component.scss']
})
export class HeaderComponent implements OnInit {
modalActions = new EventEmitter<string | MaterializeAction>();
errors: string;
isRequesting: boolean;
submitted: boolean = false;
loged: boolean = !!localStorage.getItem('auth_token');;
credentials: Credentials = { email: '', password: '' };
constructor(private userService: UserService,
private router: Router,
private activatedRoute: ActivatedRoute,
private sharedService: ModalService) { }
ngOnInit() {
}
openModal() {
this.sharedService.showModalMethod();
}
尝试创建变量
public modalSubscription:Subscription编码>变量,并在构造函数中为其分配模式服务。并确保包括来自rxjs
import { Subscription } from 'rxjs/Subscription';
public modalSubscription: Subscription; <----
constructor(private userService: UserService,
private router: Router,
private activatedRoute: ActivatedRoute,
private modalService: ModalService) {
this.modalSubscription = modalService.showModal$.subscribe((x) => {
//It is not comming here
this.openModal();
});
}
从'rxjs/Subscription'导入{Subscription};
公共模式订阅:订阅;{
//这里没有人
这是openModal();
});
}
能否添加组件的@注释?还有sharedService
和modalService
是相同的服务吗?更新了,是的,它是相同的服务。你有任何延迟加载的模块、组件吗?你延迟加载任何模块吗?老实说,我现在不知道如何创建这样的服务,我知道它的意思,但我没有这样做。我已经解决了我的问题,我需要在routes中指定我的LoginComponent。。。谢谢你的努力。
import { Subscription } from 'rxjs';
import { Component, OnInit, OnDestroy, EventEmitter } from '@angular/core';
import { Router, ActivatedRoute } from '@angular/router';
import { Credentials } from "../shared/models/credentials.interface";
import { UserService } from "../shared/services/user.service";
import { MaterializeAction } from "angular2-materialize/dist";
import { ModalService } from "../shared/services/modal.service";
@Component({
selector: 'app-login-form',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit, OnDestroy {
private subscription: Subscription;
private modalSubscription: Subscription;
modalActions = new EventEmitter<string | MaterializeAction>();
brandNew: boolean;
errors: string;
isRequesting: boolean;
submitted: boolean = false;
credentials: Credentials = { email: '', password: '' };
constructor(private userService: UserService,
private router: Router,
private activatedRoute: ActivatedRoute,
private modalService: ModalService) {
modalService.showModal$.subscribe((x) => {
this.openModal();
});
}
providers: [
AuthGuard,
UserService,
ConfigService,
DashboardService,
ModalService
],
import { Subscription } from 'rxjs/Subscription';
public modalSubscription: Subscription; <----
constructor(private userService: UserService,
private router: Router,
private activatedRoute: ActivatedRoute,
private modalService: ModalService) {
this.modalSubscription = modalService.showModal$.subscribe((x) => {
//It is not comming here
this.openModal();
});
}