我创建了一个Angular库,但是我想导出一个模型,供我的应用程序使用。我该怎么办?
例如:
我的图书馆
library-model.ts
export class LibraryModel{
//some model data
}
my-library.component.ts
import { Component, OnInit, Input } from '@angular/core';
//some imports
@Component( {
selector: '...',
templateUrl: '...',
styleUrls: [...]
} )
export class MyLibraryComponent implements OnInit {
@Input() libInputData: LibraryModel;
// some other codes
}
my-library.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { MyLibraryComponent} from './my-library.component';
import { LibraryModel} from './library-model';
@NgModule( {
declarations: [MyLibraryComponent, LibraryModel],
imports: [
BrowserModule
],
exports: [MyLibraryComponent, LibraryModel]
} )
export class MyLibraryModule { }
public_api.ts
export * from './lib/my-library.service';
export * from './lib/my-library.component';
export * from './lib/my-library.module';
export * from './lib/library-model';
我的应用
app.component.ts
import { Component } from '@angular/core';
import { LibraryModel } from 'my-library';
@Component({
selector: 'grc-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'my-application';
libraryModel : LibraryModel ;
initializeData() {
//initialize and set data for libraryModel
}
}
app.component.html
<my-lib-component libInputData="libraryModel" ></my-lib-component>
但是,通过这种设置,在构建库期间出现“无法导出值LibraryModel ...”错误。 我想使用LibraryModel,以便可以轻松地在app.component.html中传递数据。 我该如何实现?
答案 0 :(得分:0)
您不能声明/导出它,它是一个模型,简单的非角类不是component
,请从两个数组中将其删除({{ 1}}和declarations
)。它已由 exports
导出。
不要声明以下内容:
- 已经在另一个NgModule中声明的类
- 从另一个包导入的指令数组。例如,不要从@ angular / forms声明FORMS_DIRECTIVES
- NgModule类
- 服务类别
- 非角度类和对象,例如字符串,数字,函数,实体模型,配置,业务逻辑和 助手类