Mr *_*r H 3 typescript angular-module angular
我有一个 SharedModule
import { NgModule } from '@angular/core';
import { ControlMessagesComponent } from './control-messages.component';
@NgModule({
imports: [
],
declarations: [
ControlMessagesComponent
],
exports: [
ControlMessagesComponent,
]
})
export class SharedModule {}
Run Code Online (Sandbox Code Playgroud)
然后我导入了2个不同的模块:
import { SharedModule } from './../shared/shared.module';
@NgModule({
imports: [
SharedModule
],
declarations: [
],
providers: [
]
})
export class OnboardModule {}
import { SharedModule } from '../shared/shared.module';
@NgModule({
imports: [
SharedModule
],
declarations: [
],
providers: [
]
})
export class AModule {}
Run Code Online (Sandbox Code Playgroud)
这里是 ControlMessagesComponent
import { Component, Input } from '@angular/core';
import { FormGroup, FormControl } from '@angular/forms';
import { ValidationService } from './../validators/validator';
@Component({
selector: 'control-messages',
template: `<div *ngIf="errorMessage !== null">{{errorMessage}}</div>`
})
export class ControlMessagesComponent {
@Input() control: FormControl;
constructor() {}
get errorMessage() {
for (const propertyName in this.control.errors) {
if (this.control.errors.hasOwnProperty(propertyName) && this.control.touched) {
return ValidationService.getValidatorErrorMessage(propertyName, this.control.errors[propertyName]);
}
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用它时:
<control-messages [control]="form.controls.assetName"></control-messages>
我收到以下错误:
无法绑定到'ngIf',因为它不是'div'的已知属性.("]*ngIf ="errorMessage!== null"> {{errorMessage}}"):ng:///SharedModule/ControlMessagesComponent.html@0:5属性绑定ngIf未被嵌入式模板上的任何指令使用.确保属性名称拼写正确,并且所有指令都列在"@ NgModule.declarations"中.("[ERROR - >] {{errorMessage}}"):ng:///SharedModule/ControlMessagesComponent.html@0:0
我没有选择可以有人请让我知道我在这里做错了什么?
加入CommonModule你的SharedModule.NgIf并且NgForOf也是指令CommonModule.您实际SharedModule使用的组件使用NgIf,因此您必须在模块中导入它.
包括所有的基本角指令像模块
NgIf,NgForOf,
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ControlMessagesComponent } from './control-messages.component';
@NgModule({
imports: [
CommonModule
],
declarations: [
ControlMessagesComponent
],
exports: [
ControlMessagesComponent,
]
})
export class SharedModule {}
Run Code Online (Sandbox Code Playgroud)