[英]TypeError: Cannot read property 'push' of undefined with AngularJS
[英]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.