嗨,我有以下html
<tbody ng-repeat="c in forms">
<tr>
<td> <input type="text" ng-model=c.name /> </td>
<td> <input type="text" ng-model=c.ac /> </td>
</tr>
<tr ng-repeat="a in c.te">
<td> <input type="text" ng-model=a.name /> </td>
<td> <input type="text" ng-model=b.ac /></td>
</tr>
</tbody>
<button ng-click="add(c)">Add</button>
<button ng-click="submit(c)">Crate account</button>
在我的控制器中
$scope.forms = [{
"name" : "form1", "ac": 251
}, {
"name": "form2", "ac": 252
}, {
"name": "form3", "ac": 253
}];
$scope.addRows = function (c) {
alert(form);
if (typeof c.te == 'undefined') {
c.te = [];
}
alert("pushing");
c.te.push({ name: '', ac: ''});
};
我总是在if(typeof c.te =='undefined')说的时候出错
Error: c is undefined
请让我知道这里出了什么问题。 if语句应该检查它是否未定义,但是不起作用,谢谢
最佳答案
c
是未定义的(不是对象),读取te
属性会引发错误。
因为检查typeof c.te === 'undefined'
时,javascript会先在执行te
之前从c
读取属性typeof
。
if (typeof c === 'undefined') {
c = {};
}
if (typeof c.te === 'undefined') {
c.te = [];
}
如果您知道
c
和c.te
都是真实的,则可以编写:c = c || {};
c.te = c.te || [];
关于javascript - AngularJS未定义错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22804570/