【问题标题】:Casting an array to NgIterable<T> in Angular 4+ (ngForOf)在 Angular 4+ (ngForOf) 中将数组转换为 NgIterable<T>
【发布时间】:2018-11-07 01:29:20
【问题描述】:

我正在尝试修改指令ngForOf 指令。该指令应自行获取可迭代对象。我如何必须转换 Array 才能获得 NgIterable&lt;T&gt; 类型的对象?

// original
// @Input() ngForOf: NgIterable<T>; 


// modified
ngForOf:any;

constructor(...){
this.ngForOf = [1,2,3] // Example Array
}

最好的问候,

【问题讨论】:

    标签: angular angular5 directive ngfor


    【解决方案1】:

    NgIterableArrayIterable 的类型别名,因此您不必强制转换。

    这里的问题是 ngForOf 是 NgIterable ,其中 T 没有定义(至少在我们可以看到的代码中)尝试:

    @Input() ngForOf: NgIterable<number>;
    
    constructor(...){
      this.ngForOf = [1,2,3] // Example Array
    }
    

    所以在你的情况下你想使用泛型你需要做一些类似的事情

    import { Input, NgIterable } from '@angular/core';
    
    export class MyForOf<T> {
      @Input() ngForOf: NgIterable<T> = [];
    }
    

    【讨论】:

    • 这对我来说很好。有没有办法我可以使用 而不是 因为修改后的指令不需要@Input(),但没有就行不通
    • 你应该问另一个问题,因为缺少很多代码来帮助你。
    猜你喜欢
    • 1970-01-01
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    相关资源
    最近更新 更多