How To Trigger 'change' On A Hidden Field Bound To A Scope Variable With Angularjs Without Jquery?
I have a complex control (button clicks, dropdowns, etc) that builds a string. So every button click/dropdown selection calls a scope function that in turn updates a scope variable
Solution 1:
Something you can do is to use a $watch
within your directive so it is reusable. See the answer here
Essentially, within your link function you can $watch
the attrs.ngModel
, which catches any changes. Your link
function would change to something like this:
link: function (scope, element, attrs) {
scope.$watch(attrs.ngModel, function (newVal) {
//Do custom validation here
});
}
See working JSFiddle I forked here with two simple inputs and a hidden input using the directive that writes every change to the console
Edit: You might want to check for newVal and oldVal being equal to ignore the initialization call, which would look like this:
link: function (scope, element, attrs) {
scope.$watch(attrs.ngModel, function (newVal, oldVal) {
if(newVal !== oldVal) {
//Do custom validation here
}
});
}
Post a Comment for "How To Trigger 'change' On A Hidden Field Bound To A Scope Variable With Angularjs Without Jquery?"