簡體   English   中英

Angular 2通過屬性將數組傳遞給指令不可變

[英]Angular 2 pass array into directive via attribute not variable

使用我自己的自定義組件,並堅持使用屬性和變量。 我使用的是@Input屬性指令,當我傳入正確范圍的變量時,它可以工作。

組件(有效)

<mycomp [arrayValue]= "someArrayVar">html</mycomp>

但我不確定要完成這項工作需要做什么??

組件(不起作用)

<mycomp arrayValue= "[1,2,3,4,5]">html</mycomp>

我的指令看起來像這樣...

指示

    export class MyComp implements DoCheck, OnInit {

      @Input() arrayValue: number[];

任何人都可以解釋我將如何實現輸入別名和屬性,以在不使用任何變量且傳遞字符串時使用"[1,2,3,4,5]"類的東西,我將不勝感激

您想要的與您的第一個版本相似:

<mycomp [arrayValue]= "someArrayVar">html</mycomp>

只需使用此:

<mycomp [arrayValue]= "[1,2,3,4,5]">html</mycomp>

也就是說,將指令名稱括在方括號中,以指示angular將值視為表達式。

arrayValue="[1,2,3,4,5]"將傳遞您作為字符串提供的值。 如果您確實想通過這種方式傳遞數組,則必須自己解析(例如,使用JSON.parse ),可能是在arrayValue的getter中進行。

@Input() get arrayValue(value: string | number[]) {
  if (typeof value == 'string') {
    this._arrayValue = JSON.parse(value)
  } else {
    this._arrayValue = value
  }
}

但是問題是,為什么要這樣做? 不推薦。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM