2016-04-27 4 views
1

Я хотел бы знать, можно ли «предотвратить» обновление поля формы (ввод, выберите ...), что он грязный из-за взаимодействия с пользователем. Если я обновляю примитив ng-model (например: set pippo от 1 до X), вход будет обновляться, даже если я вручную отредактирую элемент управления.Угловая ng-модель не обновляется по грязному значению

Можно ли это предотвратить?

demo page: 

http://plnkr.co/edit/ClXoS7YVcEDtcApsNpde 

Вводное поле count UP каждые X секунд. Если я вхожу в «AAA», мне бы хотелось, чтобы это обновление STOP, потому что вход «грязный» из-за взаимодействия с пользователем.

+0

просто добавьте подтверждение внутри функции 'this.update' – daymannovaes

ответ

0

Если у меня возник вопрос, возможно, это то, что вы пытаетесь сделать?

$scope.$watch("pippo", function(){ 
    if($scope.pippotmp != $scope.pippo) 
    $scope.useredited = true; 
}); 

ОБНОВЛЕНО Ответ

plunker

вы можете сохранить модель, отделенную от изменения входного ... во временной переменной

+0

nope, я не могу отменить интервал, и AAA это пользовательский ввод, может быть что угодно. То, что «пользователь изменил вход», «пользователь не изменил входное значение» – user3804873

+0

см. Обновленный плункер, возможно, я получил его сейчас – daniel

0

ngChange добавить атрибут элемента ввода,

Update Plunker

<input type=text ng-model="pippo" ng-change="userChanged()"/> 

//controller 
$scope.pippo = 1; 
$scope.isUserChanged = false; 
$scope.counter= 1; 

$scope.userChanged = function(){ 
    $scope.isUserChanged = true; 
} 

this.update = function() { 
    if(!$scope.isUserChanged){ 
     $scope.pippo += 1; 
    } 
} 
$interval(this.update, 3000); 

userChanged будет вызываться, когда пользователь типирование, но не будет вызываться, когда pippo изменены другими методами управления, чтобы мы могли установить флаг в userChanged, чтобы указать, является ли вход был перезаписать пользователем

0

я мог бы получить этот вопрос неправильно, но если я правильно понимаю, то нг-модель-вариант, что вы ищете.

Например, вы можете обновить модель только тогда, когда пользователь оставить входные нг-модель-параметров = «{updateOn:„размывание“}»

Вы можете прочитать об этом в документе: https://docs.angularjs.org/api/ng/directive/ngModelOptions

Смежные вопросы