簡體   English   中英

TypeError:無法讀取Angular.js中未定義的屬性“ 0”

[英]TypeError: Cannot read property '0' of undefined in Angularjs

我看到了許多與TypeError相關的問題:無法讀取未定義的屬性“ 0”,但是它們都無法解決我的錯誤。

我的要求是onClick按鈕(例如:ng-click =“ addRow(tester.devices)”)我必須調用一個函數-

如果已經存在/正在調用devicelist,則無需定義_scope.tester.devices = []否則_scope.tester.devices = []; 定義為避免錯誤:無法讀取未定義的屬性“ unshift”

我的代碼如下

_scope.addRow = function (list) {
        _scope.uniqueId = Math.round((Math.random() * 10) * 10000);
        if (_scope.tester.devices) {
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });


        } else {
            _scope.tester.devices = [];
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });
        }
        _scope.modifyField[list[0].uniqueId] = true;
    }

Edit1:我將$ scope定義為_scope。 所以這不是問題。

這個問題解決了

將數組傳遞給函數,似乎您將錯誤的參數傳遞給函數_scope.addRow()

將數組傳遞給函數后,它對我來說工作正常。

我通過修改_scope.modifyField[list[0].uniqueId] = true;解決了這個問題_scope.modifyField[list[0].uniqueId] = true; _scope.modifyField[_scope.uniqueId] = true;

不幸的是,我無法刪除我的問題,因為有人按照堆棧溢出規則為此花費了時間。

代碼如下:

 _scope.addRow = function (list) {
        _scope.uniqueId = Math.round((Math.random() * 10) * 10000);
        if (_scope.tester.devices) {
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });
             _scope.modifyField[list[0].uniqueId] = true;

        } else {
            _scope.tester.devices = [];
            _scope.tester.devices.unshift({
                'name': '',
                'id': '',
                'uniqueId': _scope.uniqueId,
            });
        }
        _scope.modifyField[_scope.uniqueId] = true;
    }

嗨,您確定您的函數參數('list')是一個數組嗎? 似乎不確定。

暫無
暫無

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

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