簡體   English   中英

通過從 HTML 傳遞來更改 Angular 組件的變量

[英]Change an Angular component's variable by passing it from the HTML

我正在開發一個 Angular (8) 應用程序,我有一個項目列表,我在 HTML 中使用 *ngFor 進行迭代,如下所示:

        <div *ngFor="let item of someList">
          <app-template [item]="item"
                        (deleteItem)="deleteFromList($event, someList)"></app-template>
        </div>

我想要做的是使用 deleteFromList() function 從列表中刪除一項。 我找到了一種我非常喜歡的刪除方法,但可以提供其他替代方法。 這是我的 function 的樣子:

  deleteFromList(forDeletion, myList) {
      myList = myList.filter(item => item !== forDeletion);                 
  }

如您所見,我將列表作為參數傳遞給此 function(而不是從我現在所在的組件訪問列表)。 我這樣做是因為我想調用這個 function 來對我在同一個文件中擁有的另一個列表進行另一個刪除操作,所以我不僅要知道要刪除哪個元素,還要知道從哪個列表中刪除。

問題是從 HTML 傳遞列表並更改該參數列表變量不會更改我正在迭代的組件的實際變量。 有沒有一個干凈和道德的解決方案? 如果我更改參數列表變量,為什么該列表變量不會改變?

謝謝: :)

Standby954的回答解決了我的問題。 似乎我不能重新簽名作為參數傳遞的列表,而只能修改它。 解決方案:

const el = myList.findIndex(item => item.id === forDeletion);
myList.splice(el, 1);

暫無
暫無

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

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