angular ngmodel - nGModelController.$render not called even after setting value through $setViewValue -
i learned of ngmodelcontroller, , had been experimenting it. directive input field , on keydown, set value of model ngmodelcontroller.$setviewvalue. should call $render written in angular documentation , explained in blog. $render in code below, not called. please suggest.
angular code
angular.module('controls',[]); angular.module('controls') .controller('spinner',['$scope', function($scope){ $scope.spinner=""; } ]) .directive('spincontrol',function(){ return { restrict : 'e', templateurl : 'spin.html', require : 'ngmodel', link : function(scope,elem,attrs,ngmodelcontroller){ ngmodelcontroller.$render = function() { alert('render called'); }; elem.on('keyup', function(event){ ngmodelcontroller.$setviewvalue(elem.find('input').val()); }); } }; }); p.s. - tried find similar question on so, couldn't find it. guide me question if duplicate.
$render called when external model value gets changed outside directive. $setviewvalue won't trigger (because it's assumed that, since view changed, needed changes rendered).
if have <spin-control ng-model="spinner"></spin-control>, try putting in spinner controller:
$timeout(function () { $scope.spinner = 'new value'; }, 1000); (remember inject $timeout controller). 1000 seconds after controller loads alert() should show up.
Comments
Post a Comment