获取空输入长度时AngularJS抛出错误

时间:2017-04-11 09:07:08

标签: javascript angularjs

我目前正在尝试使用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) {

但它没有帮助。

3 个答案:

答案 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) { }