私はAngular2 RC5
Angular2 マテリアル ライブラリをAspNetCore 1.0
使用して学習し、アプリで実行するようにしていますVisualStudio 2015.
。完全に実行されているAngular2 RC5
単一ページのアプリケーションを使用して、ログイン ページのみが最初に読み込まれる遅延読み込みを導入しようとしました。ログインに成功したら、残りのページをロードしたいと思います。
SPA モードでログイン ボタンをクリックすると、遅延読み込みを導入する前に、ログイン ページがプリロードされた DashboardComponent ページに正常にリダイレクトされました。このチュートリアルに従った後、これらのエラーが発生するようになりました
エラー スニペット
EXCEPTION: Error: Uncaught (in promise): Template parse errors: Can't bind to 'ngIf' since it isn't a known property of 'md-card-title'. 1. If 'md-card-title' is an Angular component and it has 'ngIf' input, then verify that it is part of this module. 2. If 'md-card-title' is a Web Component then add "CUSTOM_ELEMENTS_SCHEMA" to the '@NgModule.schema' of this component to suppress this message. (" <md-card-title [ERROR ->]*ngIf="!showMessage && !isApproved"> Please use the information below... </md-card-title> "): ReportListComponent@63:23 Property binding ngIf not used by any directive on an embedded template. Make sure that the property name is spelled correctly and all directives are listed in the "directives" section. ("
ngIf ディレクティブが突然機能しないのはなぜですか? ログイン成功後に遅延ロードするようにダッシュボードを移動する前は、機能していました。
上記のリンクで共有モジュールアプローチを使用するまで、私はずっと行ってきました。共有モジュールを使用していないことがこの問題の原因ですか? モジュールの共有は、コードをクリーンアップする方法であり、すべてが機能したらそれ以上のことを繰り返さない方法であると推測しました。
私のダッシュボードは、上でたどっているリンクの HeroesList ページに似ており、DashboardModule が読み込まれると、さらにいくつかのページが読み込まれます。MVC 側のダッシュボード ページにブレークポイントを配置し、ログインが成功した場合にのみダッシュボードとページが遅延ロードされることを確認しました。
このエラーは、コアの角度参照および/または angular2 マテリアル ライブラリの参照を取得できないようです。ここにリストされているすべてのインポートを、ルーティングモジュール以外のすべてのモジュールに配置しました
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { MdRadioModule } from '@angular2-material/radio';
import { MdToolbarModule } from '@angular2-material/toolbar';
import { MdButtonModule } from '@angular2-material/button';
import { MdIconModule } from '@angular2-material/icon';
import { MdProgressBarModule } from '@angular2-material/progress-bar';
import { MdListModule } from '@angular2-material/list';
import { MdInputModule } from '@angular2-material/input';
import { MdCardModule } from '@angular2-material/card';
それでも、上記のスニペットのようにエラーが発生します。何が欠けている可能性がありますか?ヘルプやヒントをいただければ幸いです。
編集
Dashboard.Module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { MdRadioModule } from '@angular2-material/radio';
import { MdToolbarModule } from '@angular2-material/toolbar';
import { MdButtonModule } from '@angular2-material/button';
import { MdIconModule } from '@angular2-material/icon';
import { MdProgressBarModule } from '@angular2-material/progress-bar';
import { MdListModule } from '@angular2-material/list';
import { MdInputModule } from '@angular2-material/input';
import { MdCardModule } from '@angular2-material/card';
import { AppService } from './app.service';
import { DashboardRoutingModule } from './Dashboard-routing.Module';
@NgModule({
imports: [
CommonModule, HttpModule, FormsModule, RouterModule,
MdRadioModule, MdToolbarModule, MdProgressBarModule,
MdButtonModule, MdIconModule, MdListModule,
MdCardModule, MdInputModule, MdToolbarModule,
DashboardRoutingModule],
/*declarations: [ DashboardComponent ],*/
exports: [ CommonModule ],
providers: [ AppService ]
})
export class DashboardModule { }
DashboardComponent.ts
import { Component } from '@angular/core';
import { AppService } from './app.service';
@Component({
template: `
<router-outlet></router-outlet>
`
})
export class DashboardComponent {
userName = '';
constructor(service: AppService) {
//this.userName = service.userName;
}
}
dashboard-routing.Module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { HttpModule } from '@angular/http';
import { MdRadioModule } from '@angular2-material/radio';
import { MdToolbarModule } from '@angular2-material/toolbar';
import { MdButtonModule } from '@angular2-material/button';
import { MdIconModule } from '@angular2-material/icon';
import { MdProgressBarModule } from '@angular2-material/progress-bar';
import { MdListModule } from '@angular2-material/list';
import { MdInputModule } from '@angular2-material/input';
import { MdCardModule } from '@angular2-material/card';
import { DashboardComponent } from './DashBoardComponent';
import { ReportListComponent } from './ReportListComponent';
import { ReportDetailComponent } from './ReportDetailComponent';
const routes: Routes = [
{
children: [
{ path: 'Home/ReportList', component: ReportListComponent },
{ path: 'Home/ReportDetail/:reportId', component: ReportDetailComponent }
]
}
];
@NgModule({
imports: [RouterModule.forChild([routes])
],
declarations: [ DashboardComponent, ReportListComponent, ReportDetailComponent ],
exports: [RouterModule, ReportListComponent, ReportDetailComponent, CommonModule]
})
export class DashboardRoutingModule {}