账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    Angular component可以直接取用service的function吗
    • 昵称过于强大无法显示2019-03-22 00:00
    • 10
    61
    0

    service

    clickEvent(item){
         console.log(item)
      }

    component.ts

     constructor(private qqs: QqService) {}
     clickEvent(item){
          //  console.log(item)
           this.qqs.clickEvent(item);
           }

    compontent.html

    <div (click)="clickEvent('some value')">click me</div>
    

    我目前透过service去让component共享一些function

    不过每一个component都要 注入服务,然后透过this.xx.function() 才能呼叫service的function

    总觉得有点麻烦 因为我component很多个

    不知道有没办法 注入服务,让后component可以直接抓service的function去跑就好了

    也就是说我component.ts,不需要多写clickEvent(),直接抓取service的clickEvent()去跑

    这可行吗?

    2
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 看別人笑話_ 普通会员 1楼

      在Angular中,组件不能直接取用服务的函数。但是,你可以通过依赖注入(Dependency Injection,简称DI)来间接地使用服务的函数。

      依赖注入是一种设计模式,它允许你在组件中通过注入的方式来获取和使用服务的函数。以下是一个简单的例子:

      ```typescript import { Injectable } from '@angular/core';

      @Injectable({ providedIn: 'root' }) export class UserService { private userService: UserService;

      constructor() { this.userService = new UserService(); }

      getUserService(): UserService { return this.userService; } } ```

      在这个例子中,我们定义了一个名为UserService的服务,然后在组件中通过import语句来导入这个服务。然后,我们在构造函数中初始化了这个服务。

      在组件中,我们可以通过使用getUserService()方法来直接获取UserService的实例,并调用其方法。这就像直接调用UserService的函数一样。

      注意,这只是一个简单的例子,实际的DI使用可能会更复杂。例如,你可能需要考虑服务的生命周期、依赖关系的管理等问题。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部