【问题标题】:Is it possible to interpolate angular library components with project data?是否可以使用项目数据插入角度库组件?
【发布时间】:2019-06-25 20:37:49
【问题描述】:

我正在创建一个自定义 Angular 组件库,但遇到了一个问题。我在我的库中创建了一个包含插值数据的组件。在该组件的 .ts 文件中,我声明了变量,但只分配了一个类型,因为我不想要默认值。 (例如:{{myVar}} myVar:string;}

在我导入库的实际项目中,我将库组件包含在 app.component.html 和 app.component.ts 中,我重新定义了相同的变量,但这次使用了一个值。 (例如:myVar: string = "我的实际数据")。但是,这在呈现页面时不会出现。我假设是因为库组件仍在查看库中的 .ts 文件以获取值。这是一个正确的假设吗?如果是这样,是否有任何方法可以将库中的组件插入导入它的项目中的数据?

谢谢。

【问题讨论】:

  • 模板中的角度表达式总​​是根据它们的组件实例进行评估。他们永远不会从其他组件中获得价值。这是基本的东西。创建一个可重用的组件库是一个相当高级、复杂的话题。您应该首先练习简单的应用程序,因为这是您首先需要了解的基本内容。

标签: angular interpolation libraries


【解决方案1】:

最好的方法是使用指令和输入装饰器。

<mat-table [dataSource]="dataResolved">
.....

@Input() dataResolved: DataResolvedDirective;

@Directive({
  selector: '[dataResolved]'
})
export class DataResolvedDirective{

  constructor( httpClient: HttpClient ) { // OR DI - Existing Service
    }
  @Input() set dataResolved( ) {
        return this.httpClient.get('remote server url + uri');
    }

【讨论】:

    猜你喜欢
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 2011-02-19
    • 2019-03-06
    相关资源
    最近更新 更多