【问题标题】:Adding to Javascript array based on if statement基于 if 语句添加到 Javascript 数组
【发布时间】:2014-10-06 16:09:57
【问题描述】:

我需要根据 if 语句的结果将错误消息添加到数组中。只有当我输入应该触发两者的数据时,下面的代码才会返回第二条错误消息。我知道 .push() 不仅添加到前一个数组,而且他们必须解决的唯一方法是创建一个 for 循环。我认为我只是缺少一些简单的功能。

    $scope.error = {};
    if ($password == null || $vPassword == null || $email == null || $vEmail == null) {
        console.log('All fields must be filled in');
    } else {
        if ($scope.verifyPassword !== $scope.password) {
            $scope.error[scope.error.length()] = 'Your passwords must match...';
        }
        if ($scope.verifyEmail !== $scope.email) {
            $scope.error.push = ['Your email addresses must match...'];
        }
        console.log($scope.error);
    }

我认为代码是不言自明的。如果您需要更多信息,请告诉我。

谢谢!

编辑:我不确定是什么代码产生了我解释的错误。对不起。上面的代码是我为了让它工作而弄乱的垃圾代码。很明显,大部分都没有意义。接受的答案是我最初认为会产生该错误的原因,但显然它有效。对不起,糟糕的帖子。

【问题讨论】:

  • 对于一个数组:$scope.error = [];然后根据需要只需.push("string")

标签: javascript arrays angularjs validation


【解决方案1】:

push 是一个函数,应该使用() 调用。

$scope.error.push('Your email addresses must match...');

此外,您不能在不是数组的对象上调用push。您必须将$scope.error 实例化为Array

$scope.error = [];

【讨论】:

  • 我并不像我的问题看起来那样愚蠢。阅读我对问题的编辑。不过谢谢!它有效!
【解决方案2】:

您需要将$scope.error 更改为数组,而不是对象,然后.push() 才能正常工作。

$scope.error = [];
$scope.error.push("Your passwords must match...");

console.log($scope.error);

生产

["Your passwords must match..."]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 1970-01-01
    • 2013-05-29
    • 2016-12-11
    • 1970-01-01
    相关资源
    最近更新 更多