0

meteor -Angular2 チュートリアルを実行しようとしていますが、このページのセクション 8 までです。

http://www.angular-meteor.com/tutorials/socially/angular2/user-accounts-authentication-and-permissions

コード スニペット 8.9 は次を示します。

app.routes.ts (RC4 に合わせたオリジナル)

import { RouterConfig, provideRouter } from '@angular/router';
import { Meteor } from 'meteor/meteor';

import { PartiesListComponent } from './imports/parties/parties-list.component';
import { PartyDetailsComponent } from './imports/parties/party-details.component';

const routes: RouterConfig = [
  { path: '', component: PartiesListComponent },
  { path: 'party/:partyId', component: PartyDetailsComponent, canActivate: ['CanActivateForLoggedIn'] }
];

export const APP_ROUTER_PROVIDERS = [
  provideRouter(routes),
  { provide: 'CanActivateForLoggedIn', useValue: () => !! Meteor.userId() }
];

ただし、これは Angular 2 RC4 用です。RC5 で動作するように、この時点までにアプリを変更しました。私の同じファイルは次のようになります。

app.routes.ts (RC5 に合わせて私が変更)

import {RouterModule, Routes} from '@angular/router';
import { Meteor } from 'meteor/meteor';
import {PartiesListComponent} from './imports/parties/parties-list.component';
import {PartyDetailsComponent} from './imports/parties/party-details.component';

const ROUTES: Routes = [
    { path: '', component: PartiesListComponent },
    { path: 'party/:partyId', component: PartyDetailsComponent, canActivate: ['CanActivateForLoggedIn'] }
];

export const APP_ROUTES = RouterModule.forRoot(ROUTES);

export const APP_ROUTER_PROVIDERS: any[] = [
    { provide: 'CanActivateForLoggedIn', useValue: () => !! Meteor.userId() }
];

app.module.ts

...  
@NgModule({
        imports: [
            APP_ROUTES,
            BrowserModule,
            MeteorModule,
            FormsModule,
            ReactiveFormsModule],
        declarations: [
            AppComponent,
            PartiesFormComponent,
            PartiesListComponent,
            PartyDetailsComponent,
            LoginButtons
        ],
        providers: [
            FormBuilder,
            APP_ROUTER_PROVIDERS   // from app.routes.ts
        ],
        bootstrap: [
            APP_ROUTER_PROVIDERS,
            AppComponent
        ]
    })
    export class AppModule { }

ただし、angular 2 は のオブジェクトが気に入らずAPP_ROUTER_PROVIDERS、次のスタック トレースを報告します。

metadata_resolver.js:551Uncaught [オブジェクト Object] のすべてのパラメーターを解決できません: (?).CompileMetadataResolver.getDependenciesMetadata @ metadata_resolver.js:551CompileMetadataResolver.getTypeMetadata @ metadata_resolver.js:448(匿名関数) @ metadata_resolver.js:313CompileMetadataResolver.getNgModuleMetadata @ metadata_resolver.js:313RuntimeCompiler._compileComponents @ runtime_compiler.js:150RuntimeCompiler._compileModuleAndComponents @ runtime_compiler.js:72RuntimeCompiler.compileModuleAsync @ runtime_compiler.js:49PlatformRef_._bootstrapModuleWithZone @ application_ref.js:368PlatformRef_.bootstrapModule @ application_ref.js:361.mainmeteorInstall .js @ main.ts:12fileEvaluate @ install.js:153require @ install.js:82(匿名関数) @party.collection.ts:16

ここで何が間違っていますか?どうすれば解決できますか?

どうもありがとう

JT

4

1 に答える 1