[ACCEPTED]-How to detect input element change when set value in angularjs-angularjs
First of all, two-way data binding is here 7 in order to avoid such scenarios.
<input ng-model='ctrl.field' />
<button ng-click='ctrl.field = "new value"'>change</button>
Second, there 6 is ng-change
directive that works together with ng-model
, which 5 can be used to do something when value in 4 the model changed.
<input ng-model='ctrl.field' ng-change='alert("changed!")' />
If you still want to change 3 value outside of angular directly with DOM, just 2 fire event that angular listen to - blur
or 1 keypressed
<button ng-click='$("#id").val(a); $("#id").trigger("blur")'>change</button>
or
<button ng-click='angular.element("#id").val(a); angular.element("#id").trigger("blur")'>change</button>
You are not supposed to use querySelector
(just like 7 you are not supposed to use jQuery) with 6 Angular, unless you have a real good reason 5 to.
You can just modify $scope.data.test
, and your text box 4 contents will be updated automatically. In 3 order for this to work, you also need the 2 button
to have the same controller (so they share 1 scope), and use ng-click
instead of onclick
, like so:
<div ng-app="myDirective" ng-controller="x">
<input id="angular" type="text" ng-model="data.test" my-directive=""></input>
<button ng-click="data.test = 'testg';">click</button>
</div>
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.