我第一次尝试Angular2并且在创建服务时遇到了一些问题。实际上在使用那些服务。我创建了以下数据服务
import {Injectable} from 'angular2/core';
import {recentActivity} from './app/components/recentActivity/model'
@Injectable()
export class RecentActivityDataService {
loadList() {
const items: Array<recentActivity> = [];
items.push({
url: 'From Service',
name: 'From Service'
});
return items;
}
}
然后在一个组件中我有以下内容:
import {Component, OnInit} from 'angular2/core';
import {recentActivity} from './model';
import {RecentActivityDataService} from './dataService';
@Component({
selector: 'recentActivity',
templateUrl: './app/components/recentActivity/recentActivity.html',
providers: [RecentActivityDataService]
})
export class RecentActivity implements OnInit {
items: Array<recentActivity> = [];
constructor(private dataService: RecentActivityDataService) {
}
ngOnInit() {
this.items = this.dataService.loadList();
}
}
当我启动此组件时,我收到以下错误消息
&#34;未捕获(承诺):无法解析所有参数 &#39; RecentActivity&#39;(?)。确保所有参数都已装饰 使用Inject或具有有效的类型注释以及&#39; RecentActivity&#39; 用Injectable装饰。&#34;
我不知道我在这里失踪了什么,因为我的服务上有@Injectable,在我的组件中我把它列为提供者。但是在构造函数中它仍然没有说它无法解决这个问题。
在app.Component中我有以下
import {Component} from 'angular2/core';
import {StandardNavigation} from './navigation/standard';
import {RecentActivity} from './components/recentActivity/recentActivity';
@Component({
selector: 'cranalytics',
templateUrl: './app/main.html',
directives: [StandardNavigation, RecentActivity]
})
export class AppComponent {
}
我尝试了以下更改。在我的主要引导AppComponent中: 自举(AppComponent);
在AppComponent中,我已将服务作为提供者放在那里
import {Component} from 'angular2/core';
import {StandardNavigation} from './navigation/standard';
import {RecentActivity} from './components/recentActivity/recentActivity';
import {RecentActivityDataService} from './components/recentActivity/dataService';
@Component({
selector: 'cranalytics',
templateUrl: './app/main.html',
directives: [StandardNavigation, RecentActivity],
providers: [RecentActivityDataService]
})
export class AppComponent {
}
在最近的活动中,我导入了数据服务
import {Component, OnInit, Inject, forwardRef} from 'angular2/core';
import {recentActivity} from './model';
import {RecentActivityDataService} from './dataService';
@Component({
selector: 'recentActivity',
templateUrl: './app/components/recentActivity/recentActivity.html',
})
export class RecentActivity implements OnInit {
items: Array<recentActivity> = [];
constructor( private dataService: RecentActivityDataService) {
}
ngOnInit() {
this.items = this.dataService.loadList();
}
}
但是这给了我同样的错误信息
答案 0 :(得分:2)
尝试将recentActivity依赖项放在bootstrap()中,这样所有服务都可以访问它而无需在任何地方导入。