Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度2不工作_Angular_Rxjs - Fatal编程技术网

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();
  });
}