I have a grid <div ng-app="test"> <div ng-controller="userModifyController as vm" ng-cloak> <td width="5%" align="center"> <input type="radio" ng-model="vm.SelectedRoleId" name="name" value="{{role.RoleId}}" required="required" ng-change="vm.LoadStoreAttributesDetails()"/> </td> <div> <div> Here the ng-change is fired only once when the page loads and the value is set up first time when the grid is bind with the existing selected value after which when I select any other option in the row the change event is not fired. When each radio button is clicked in a row it should fire the event in the Angular controller file vm.LoadStoreAttributesDetails = function () { alert("test"); } Continue reading...