div的角度ng变化

时间:2016-10-23 16:59:17

标签: java angularjs

我想只在修改div中的任何字段时启用保存按钮。我的div包含许多文本字段,选择和复选框。我正在寻找一些东西(可能是一个指令),它将查看整个div中的所有范围变量(ng-models)并在更改时启用保存按钮。

据我所知,只有textarea,text和select字段可以有ng-change指令。有没有其他方法可以实现这个目标?

首先,我创建了一个指令,当div下的字段发生变化时,该指令应自动触发。但是这个指令从未被触发过。我在HTML div标签上提到了这个指令。

.directive('enableSave', function() {
      return {
        require: 'ngModel',
        restrict: 'A',
        link: function(scope, elm, attr, ngModel) {
            ngModel.$setViewValue(true);
        }
    }
});

2 个答案:

答案 0 :(得分:3)

您可以使用$scope.$watch。监视传递给指令的模型,并在触发更改时启用保存按钮,例如:

.directive('enableSave', function() {
  return {
    require: 'ngModel',
    restrict: 'A',
    link: function(scope, elm, attr, ngModel) {
        scope.$watch('modeltowatch', function(newvalue,oldvalue){
          // Enable save button
        })
    }
  }
});

更多信息:https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$watch

答案 1 :(得分:0)

您可以使用ng-dirty检查表单是否已被修改。 可以找到示例here