我想只在修改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);
}
}
});
答案 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