Home » Angularjs » How to trigger ng-change from jquery?

How to trigger ng-change from jquery?

Posted by: admin November 30, 2017 Leave a comment


I have a select tag as follows:

<select ng-change="doSomething()" ng-model="myModel"> </select>

and I’m using a jQueryUI control for it (combobox), the event “change” triggered from jQuery doesn’t trigger doSomething().

Do you know how to trigger ng-change from outside angular?


Ugh – this is terrible practice – but you can use angular.element and get the scope from an element that resides within the target controller.


<div ng-controller="myApp">
    <span id="test"></span>


var scope = angular.element("#test").scope();

Your scope variable now has access to all the methods defined on the myApp controller.


The question is not how to run some code, but rather how to trigger the change event. I found an angular-friendly way to do this. I have a jQuery UI slider that changes the value of another input which has the ng-change on it. The secret is that once you turn it into an angular.element you now have access to a method called triggerHandler. From what I’ve seen, using this would not be considered bad practice:


tymeJV’s answer did angular.element("#test") directly without using jQuery, but I got a console error and broken functionality that way. This version works without any dependencies.