SO: AngularJS - $setViewValue
HTML
<div ng-app="app">
<div ng-controller="box">
<input type="text" ng-model="boxModel" box="" />
value: {{ boxModel }}
</div>
</div>
JavaScript
angular.module('app', []).
controller('box', function($scope) {
$scope.boxModel = 'first value';
}).
directive('box',
function() {
return {
restrict: 'EA',
require: 'ngModel',
scope: {
},
link: function(scope, iElement, iAttrs, ngModel, ngModlController) {
ngModlController.$parsers.push(function(){
var val = ngModlController.$modelValue;
if(val == '1') ngModlController.$setModelValue('')
ngModlController.$render();//ngModlController.$setViewValue('hello') ;
})
ngModel.$setViewValue('second value');
ngModel.$render();
}
}
}
);