簡體   English   中英

調用函數時的角度5怪異行為

[英]angular 5 weird behavior when calling function

使用Angular 5,我調用denoFormat(item [“ DENOMINATION”])得到以下錯誤堆棧

vendor.91392bd4e66ade432f98.bundle.js:1錯誤TypeError:無法讀取Function.g.map.g.collect處main.e31e50ee66f46596cba1.bundle.js:1處未定義的屬性'denoFormat'(vendor.91392bd4e66ade432f98.bundle.js:1 ),位於e.T14 + .e .__ tryOrUnsub(vendor.91392bd4e66ade432f98.bundle.js:1)的e._next(main.e31e50ee66f46596cba1.bundle.js:1)在e.T14 + .e.next(vendor.91392bd4undeund js:1)在e.T14 + .e._next(vendor.91392bd4e66ade432f98.bundle.js:1)在e.T14 + .e.next(vendor.91392bd4e66ade432f98.bundle.js:1)在e.L8VJ.e._next (供應商91392bd4e66ade432f98.bundle.js:1)在XMLHttpRequest.s(供應商91392bd4e66ade432f98.bundle.js:1)中的e.T14 + .e.next(供應商91392bd4e66ade432f98.bundle.js:1)

如果我要使用item [“ DENOMINATION”],則不會發生任何錯誤。 有人可以解釋發生了什么嗎?

 var _data =  [ { DENOMINATION: 0, FIT: 0, UNFIT: 0},
        { DENOMINATION: 1, FIT: 2157, UNFIT: 1842},
        { DENOMINATION: 2, FIT: 2455, UNFIT: 2031 }
  ];

  var arr = [];
  arr.push(_.map(this._data ,function(item){
    if (((item["FIT"] + item["UNFIT"]) != 0) && (item["DENOMINATION"] <= 5)){
      return {"name": this.denoFormat(item["DENOMINATION"]) ,"series": [
      {
        "name": "FIT",
        "value": item["FIT"]
      },
      {
        "name": "UNFIT",
        "value": item["UNFIT"]
      }
    ]}
  } else{
    return;
}
}));
      denoFormat(n){
        var val;
        switch (n){
          case 0:
          val = 1000;
          break;
          case 1:
          val = 5000;
          break;
          etc.
        }
        return val;
      }

在這種情況下,您必須使用箭頭功能來防止范圍改變。

arr.push(_.map(this._data , (item) => {
    // ...
    this.denoFormat()
    //...
}

暫無
暫無

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

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