Я пытаюсь отключить кнопку, расположенную рядом с флажком, но только если базовая модель этого флажка отличается от базовой первоначальное значение. Самостоятельное на своем собственном не работает, потому что технически форма была изменена. Моим решением было захватить исходное значение и переключить первоначальное значение формы, исходя из того, соответствует ли текущее значение этому значению.Как установить значение ng-disabled для кнопки на основе исходного значения модели
Я предполагаю, что есть лучший способ, о котором я не знаю.
<div ng-controller="MyCtrl">
<div ng-form="form">
<div class="checkbox">
<label>
<input type="checkbox" ng-click="toggle(form)" ng-model="foo.bar">{{ foo.bar }}
</label>
</div>
<button class="btn btn-primary" ng-disabled="form.$pristine" ng-click="save(form)">Button</button>
</div>
</div>
angular.module("app", [])
.controller("MyCtrl", function($scope, $timeout){
//catch when scope is first set
$scope.$watch("foo", function(curr, prev){
if(curr && !prev)
$scope.original = curr.bar;
});
//assume this is being set by some other scope
$timeout(function(){
$scope.foo = {
bar: true
};
}, 500);
$scope.toggle = function(form){
if($scope.original == $scope.foo.bar)
form.$setPristine();
console.log(form.$pristine);
};
$scope.save = function(form){
$scope.original = $scope.foo.bar;
form.$setPristine();
};
});
большую точку ... я определенно overthinking. –