我目前正在尝试使用AngularJS验证卡片。这可以正常工作,直到用户从输入字段中删除所有输入的数据,然后它会抛出以下错误:
angular.js:11004 undefined is not an object (evaluating '$scope.card.length')
我的HTML代码:
<input type="text" class='form-control' id='card' ng-model="card" ng-change="validateCard()" required>
输入为空时抛出错误的JavaScript代码:
$scope.validateCard = function() {
// Get card type
if ($scope.card.length) { // <-- throws the error
[...]
我也试过
if ($scope.card.length !== undefined) {
但它没有帮助。
答案 0 :(得分:2)
多数民众赞成因为您无法获得undefined
值的长度。你可以使用这样的东西:
if ($scope.card && $scope.card.length) { }
答案 1 :(得分:0)
你可以使用&amp;&amp;和条件
$scope.validateCard = function() {
if ($scope.card && $scope.card.length) {
}
答案 2 :(得分:0)
只需检查您的商品是否已定义:
if (angular.isDefined($scope.card) && $scope.card.length) { }