0
私はIonic3を使用していますが、起動時のパフォーマンスを向上させるためにレイジーローディングを実装中です。インポートした積極的なロードと完璧に働いたIonic3レイジー読み込み予期しないディレクティブをインポートしました
loginemail.module.ts
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { LoginEmailPage } from './loginemail';
import { ControlMessages } from '../validation/controlMessages';
@NgModule({
declarations: [LoginEmailPage],
imports: [IonicPageModule.forChild(LoginEmailPage), ControlMessages],
})
export class LoginEmailPageModule { }
をあなたが見ることができるように、私は(カスタムコンポーネントである、ControlMessages
をインポートします。
私は次のように変換されていますin app.module.ts
)。任意のアドバイスは感謝
core.es5.js:1085 ERROR Error: Uncaught (in promise): Error: Unexpected directive 'ControlMessages' imported by the module 'LoginEmailPageModule'. Please add a @NgModule annotation.
Error: Unexpected directive 'ControlMessages' imported by the module 'LoginEmailPageModule'. Please add a @NgModule annotation.
:しかし
、私はLoginEmailPage
にアクセスしてみてください、私は、次のランタイムエラーを取得します。
p.s. ControlMessages
は、まだそれを使用する他のページのapp.module.ts
にインポートされます。
controlMessages.ts
import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
import { ValidationService } from './validationService';
@Component({
selector: 'control-messages',
template: `<div *ngIf="errorMessage !== null">{{errorMessage}}</div>`
})
export class ControlMessages {
@Input() control: FormControl;
constructor() {
}
get errorMessage(): string {
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;
}
}
ページまたは共通コンポーネントControlMessagesですか? –
それは 'コンポーネント'です。 – Richard
これも同様の問題です。しかし、提案されている解決法は 'app.module.ts'にインポートを置くと言いますが、これは遅延読み込みには役立ちません。 http://stackoverflow.com/questions/43603515/uncaught-error-unexpected-directive-mycombobox-imported-by-the-module-appmod – Richard