代码之家  ›  专栏  ›  技术社区  ›  Tony_Henrich

当一个下拉菜单改变angularjs中的值时,如何获得表单的$pristine状态?

  •  0
  • Tony_Henrich  · 技术社区  · 7 年前

    我有一个下拉列表,一个select元素,带有一个ng change事件处理程序。我想在用户做出选择之前知道表单是否原始。如果我在处理程序中检查$pristine值,它已经不是pristine了。生命周期太晚了。如何获取表单的原始状态并在select或其后面的model属性的值更改之前保存其值?

    1 回复  |  直到 7 年前
        1
  •  2
  •   lastr2d2    7 年前

    为添加另一个处理程序 ngFocus 在表单上,获取值并分配给$scope变量,然后在 ngChange 处理程序。

    像这样的:

    $scope.pristine = true;
    $scope.focusHandler = function() {
      $scope.pristine = $scope.myForm.$pristine;
    };
    $scope.changeHandler = function() {
      // $scope.pristine is what your want
      console.log($scope.pristine);
    };