我有一个小的Angular 6库,我正在构建一个可重用的组件来显示页面级别的消息,例如错误,信息,警告和成功。
为此,我有一个枚举cursor:pointer;
,这很简单:
ServerMessageType.ts
export enum ServerMessageType {
Error = 'error',
Info = 'info',
Success = 'success',
Warning = 'warning'
}
应使用ServerMessage.ts
:
ServerMessageType
import { ServerMessageType } from './ServerMessageType';
export class ServerMessage {
constructor(public type: ServerMessageType,
public messageText: string,
public dismissible?: boolean,
public id?: string) {
}
}
server-messages.component.ts
但是,当我运行import { Component, EventEmitter, Input, Output } from '@angular/core';
import { ServerMessage } from './ServerMessage';
import { ServerMessageType } from './ServerMessageType';
@Component({
selector: 'app-server-messages',
templateUrl: './server-messages.component.html',
styleUrls: []
})
export class ServerMessagesComponent {
@Input() messages: ServerMessage[];
@Output() messageRemoved = new EventEmitter<ServerMessage>();
constructor() {
}
clearMessage = function (index: number) {
const message = this.messages[ index ];
this.messageRemoved.emit(message);
this.messages.splice(index, 1);
};
getMessageClass(message: ServerMessage): string {
switch (message.type) {
case ServerMessageType.Error:
return 'alert-danger';
case ServerMessageType.Info:
return 'alert-info';
case ServerMessageType.Success:
return 'alert-success';
case ServerMessageType.Warning:
return 'alert-warning';
}
}
isDismissible(message: ServerMessage): boolean {
return message.dismissible === true;
}
}
时,出现错误:
ng build
我做错了什么?如果我将BUILD ERROR
> projects/framework/src/lib/server-messages/server-messages.component.ts(3,28):
> error TS2305: Module
> '"/Users/xxx/dev/apps/framework/projects/framework/src/lib/server-messages/ServerMessage"'
> has no exported member 'ServerMessageType'
中的type
更改为字符串并完全删除ServerMessage
枚举,那么构建和部署就可以了。
谢谢!
答案 0 :(得分:2)
您需要在根模块中导入组件,并在进行服务时将其导入@Injectable而不是使用。
答案 1 :(得分:1)
如果要通过导入该模块导入该组件,则需要从模块中显式导出组件。
您必须解决此问题的代码是您要从中导出该组件的模块代码。
答案 2 :(得分:0)
愚蠢的错误!
在 server-messages.component.ts 中,这两行:
import { ServerMessage } from './ServerMessage';
import { ServerMessageType } from './ServerMessageType';
已被还原为
import { ServerMessage, ServerMessageType } from './ServerMessage';
感谢您的帮助!它无法在 ServerMessage.ts 中找到ServerMessageType
,因为它在 ServerMessageType.ts 中导出...
感谢大家的帮助!