1

アプリを angular2 から RC4 に更新した後、このエラーが発生します。 新しいwebpack スターターバンドルにLoginService 挿入しました。AppComponent

ルートに含めようとしましAppComponentたが、うまくいきません。またLoginService、APP_PROVIDERSを使用してindex.ts内に含めていましたが、別のエラーが発生しています

無効なプロバイダー - Provider と Type のインスタンスのみが許可されます。取得: 未定義

ブートストラップも入れ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 }

];

そして、すべてのルートで LoginService を利用できるようにしたいと考えています。

私の app.component は次のようになります。

@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');
    }
4

1 に答える 1