angular2 路由 - Angular RC4,未定义一个或多个"App"提供程序:[?]



在将我的应用程序更新为angular2到RC4后,我收到了这个错误。我已经将LoginService注入到新的webpack启动器捆绑包中的AppComponent中。

我试图在路由中插入AppComponent,但它不起作用。此外,我用APP_PROVIDERS在index.ts中包含了LoginService,但我得到了另一个错误

无效的提供程序-只允许提供程序和类型的实例,得到:未定义

也将LoginService放入引导程序中,但没有效果。

RC4中的Angular2出了什么问题?组件不再在树中?

这是我为路由器"3.0.0-beta.2"的路由器配置:

export const routes: RouterConfig = [
  { path: '', component: StartPageComponent },
  { path: 'login', component: StartPageComponent },
  {
    path: 'dashboard', component: 'DashboardComponent',
    canActivate: [WebpackAsyncRoute],
    children: [
      { path: '', component: 'ContentDesktopComponent' }  // must be included
    ]
  },
  { path: '**', component: NoContent }
];

我想为每条路线提供登录服务。

我的应用程序组件如下:

@Component({
  selector: 'app',
  pipes: [],    
  providers: [LoginService, SearchService, TasksService],   
  directives: [RouterActive],
  encapsulation: ViewEncapsulation.None,
  styles: [
    require('!raw!normalize.css'),
    require('!raw!../assets/css/animate.css'),
    require('./app.component.scss')
  ],
  template: require('./app.component.html')
})
export class App {
  constructor(private translate: TranslateService,
    public appState: AppState) {
    Resource.map(ENDPOINTS.API.toString(), 'http://localhost:3002/api');
    let userLang = navigator.language.split('-')[0]; // use navigator lang if available
    userLang = /(fr|en)/gi.test(userLang) ? userLang : 'pl';
    translate.setDefaultLang('en');
    translate.use('pl');
  }
  ngOnInit() {
  }
}

提供程序不可用于路由器。。。现在在rc4 中

登录服务:

@Injectable()
export class LoginService {
    private user: User = <User>{
        avatar_url: '/assets/img/avatars/u6.png'
    };
    constructor(private rest: Resource<ENDPOINTS, User, User[]>) {
        this.rest.add(ENDPOINTS.API, 'users');
    }

您需要在bootstrap(...)@Component(..., providers: [...] 中的某个位置提供TranslateServiceAppState

相关内容

最新更新