【问题标题】:How Angular 2/4/6 component methods use into another components? [duplicate]Angular 2/4/6 组件方法如何用于其他组件? [复制]
【发布时间】:2018-12-23 17:15:58
【问题描述】:

如何在 Angular 2/4/6 中调用一个组件方法到另一个组件。我正在使用两个组件,一个是登录,另一个是注册。在登录组件中,我有一种方法

login()
    {
    var email = email;
    console.log("username", email);
    var password = password;
    this.loginService.loginrequest(email, password).subscribe(
          data => {console.log(data)});
    }

那么这个登录方式在注册组件中如何实现呢?

【问题讨论】:

    标签: html css angular typescript angular6


    【解决方案1】:

    我建议将此方法提取到共享服务中。

    @Injectable()
    export class AuthService {   
      public login(login: string, password: string) {...} 
    }
    

    https://angular.io/guide/architecture-services

    【讨论】:

      【解决方案2】:

      您必须进行以下更改

      1. registration.component.ts

      import { LoginComponent } from 'mention your path';
      

      您必须在构造函数中创建组件的实例。

      constructor(private logComponent: LoginComponent) {
      
      }
      

      现在,您可以访问 loginComponent 方法 我举一个例子

      ngOnInit() {
      this.logComponent.login();
      }
      

      以上方式都可以使用。

      【讨论】:

      • 我实现了相同的代码 import { FuseLogin2Component } from '../login/login-2.component';构造函数(私有登录组件:FuseLogin2Component){} updatePassword() { this.loginComponent.login(); }
      • 我收到此错误 ERROR 错误:未捕获(承诺中):错误:StaticInjectorError(AppModule)[UpdateForgetpasswordComponent -> FuseLogin2Component]:
      • 那是因为你可能忘记了依赖注入。您还必须在 app.module.ts 文件中声明您的组件。请检查此链接。 stackoverflow.com/questions/49776562/…
      猜你喜欢
      • 1970-01-01
      • 2021-04-28
      • 2019-01-13
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      • 1970-01-01
      • 2017-12-19
      • 1970-01-01
      相关资源
      最近更新 更多