【问题标题】:runtime exception with providers - Ionic2 , Angular2 (Typescript)提供者的运行时异常 - Ionic2 , Angular2 (Typescript)
【发布时间】:2016-11-17 09:30:31
【问题描述】:

当我尝试运行我的 ionic2 应用程序 (Typescript) 时出现以下错误

ORIGINAL EXCEPTION: No provider for User! (BeerSearch -> User)

以下是我的代码

#providers/beer_search/BeerSearch
import { User } from '../user/user';
......

@Injectable()
export class BeerSearch {
   constructor(private http: Http, user: User, config: Config) {
    this.headers = new Headers();
    this.headers.append('Access-Token', user.getAccessToken())
  }
}

#providers/user/user
.....

@Injectable()
export class User {
  accessToken: string;

  constructor(private http: Http) {
    this.accessToken = '<Some token>';
  }

  getAccessToken(){
    return this.accessToken;
  }
}

我在这里找不到我做错了什么,这也 在编译时不会给出任何错误 typescript。我只在运行时收到此错误。

【问题讨论】:

  • 您是否在引导调用或相应组件中提供了User 服务?
  • 嘿@rinukkusu,感谢您的评论,但我在另一个提供者中调用一个提供者,我还需要将它添加到组件中吗? (因为我将它添加到组件中但仍然没有工作)
  • 如果您愿意,您可以在服务中的服务中调用服务中的服务。这完全没有问题。您只需要将它们添加到 bootstrap providers 数组或根组件的 providers 数组中。否则,它们不会像您刚刚经历的那样得到解决。
  • 嗨@rinukkusu,是的,就是这样:),我不知道。多谢。如果您将此作为答案发布,我会接受:),干杯

标签: typescript angular ecmascript-6 ionic2


【解决方案1】:

如果您愿意,您可以在服务中的服务中调用服务中的服务。这完全没有问题。您只需要将它们添加到 bootstrap providers 数组中

bootstrap(App, [..., User, BeerSearch]);

或根组件的providers 数组。

@Component({
    ...,
    providers: [..., User, BeerSearch]
})
export class FooComponent { ... }

否则它们不会像您刚刚经历的那样得到解决

【讨论】:

  • 很高兴我能帮上忙! :)
猜你喜欢
  • 1970-01-01
  • 2016-05-28
  • 2016-02-19
  • 1970-01-01
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
  • 2016-06-23
  • 1970-01-01
相关资源
最近更新 更多