Cory Rylanの手法を使用して、フォームに検証エラーメッセージを表示しています。これはRC4でうまくいきましたが、私はRC5でこの作業をするために何をすべきか分かりません。divエラーのプロパティではないのはなぜですか?
import { NgModule, ModuleWithProviders } from '@angular/core';
import { HttpModule } from '@angular/http';
import { RouterModule } from '@angular/router';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule } from '@angular/forms';
import { ValidationService } from '../services/validation.service';
import {ValidationMessageComponent} from '../validation/validation.message.component;
@NgModule({
imports: [CommonModule, RouterModule, MenubarModule ],
declarations: [ ValidationMessageComponent ],
exports: [ CommonModule, ReactiveFormsModule, HttpModule, ValidationMessageComponent ]
})
export class SharedModule {
//
static forRoot(): ModuleWithProviders {
return {
ngModule: SharedModule,
providers: [ ValidationService ]
};
}
}
ValidationMessageComponent:
import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
import { ValidationService } from '../services/validation.service';
@Component({
moduleId: module.id,
selector: 'kg-validationMessage',
template: `<div *ngIf="validationMessage !== null">{{validationMessage}}</div>`
})
export class ValidationMessageComponent {
@Input() control: FormControl;
constructor() { }
get validationMessage() {
for (let propertyName in this.control.errors) {
if (this.control.errors.hasOwnProperty(propertyName) && this.control.touched) {
return ValidationService.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);
}
}
return null;
}
}
エラーがテンプレート* ngIfに起こる
は、ここに私のダウン切り詰めSharedModuleです。私がこれを注入しようとしているhtmlには数多くの* ngIfがあります。私はあらゆる組み合わせを無駄にしようとしました。どんな助力も心から感謝しています。
'template: 'div * ngIf ='は冒頭に '<'がありません。 –
'ValidationMessageModule'に' imports:[...] 'の' SharedModule'を含めるべきですか? –
申し訳ありませんが、私の部分の誤植です。これはコード内にあります。 –