为什么我会从'表单获得不同的价值。$ invalid' '形式的$ invalid属性'?

时间:2017-04-12 05:57:20

标签: javascript angularjs

我想在表单的状态($ invalid)上禁用一个按钮,在我将表单中的所有值设置为null后,我发现如果我写了:console.log('$scope.assignNewForm.$invalid: ' + $scope.assignNewForm.$invalid);它会将put放为 false ,但如果我写:console.log($scope.assignNewForm);我可以找到 true 形式的$ invalid属性。这种情况同时发生。

在下面发布了我的代码:

$scope.questionnaireTitleSelected = function(questionnaireTitle) {

    $scope.assignForm.recipientType = null;
    $scope.assignForm.assigneeName = null;
    resetErrorState();
    $scope.flags.readOnly = false;

    $scope.recipientTypes = _.where($scope.questionnaires, {
      questionnaireTitle: questionnaireTitle
    });

    disabledAssignBtn();
  };

function disabledAssignBtn() {
    if (!$scope.assignNewForm) {
      return;
    }
    console.log($scope.assignNewForm.$invalid);
    console.log($scope.assignNewForm);

    $scope.flags.disabledAssignBtn = $scope.assignNewForm.$invalid || $scope.assignedError || $scope.flags.noQuestionnaires;
  }

结果: enter image description here

1 个答案:

答案 0 :(得分:0)

在您可以在控制台上打开对象之前,对象的$invalid属性可能已更改。发生这种情况是因为在折叠对象时评估对象的属性。

当您将鼠标悬停在对象上时,对象旁边的i图标显示为Value below was evaluated just now