简体   繁体   中英

Angular JS ng-change event is not firing up

Here is my code example

<select ng-model="selectedProdTeam" 
    ng-options="team for team in prodTeams | orderBy" 
    ng-change="getRolesBasedOnSelectedTeamProd()">
    <option value="">Select Teams</option>
</select>

JS

$scope.getRolesBasedOnSelectedTeamProd = function(){
    if($scope.selectedProdTeam != null || $scope.selectedProdTeam !=undefined){ 
        $scope.prodRoles = $scope.prodResp.$scope.selectedProdTeam;
    }
}

It should be,

<select ng-model="selectedProdTeam" ng-options="team for team in prodTeams | orderBy" ng-change="getRolesBasedOnSelectedTeamProd()">
 <option value="">Select Teams</option>
</select>

EDIT :

Your orderBy filter should take a parameter or remove the filter.

ex | orderBy:'name'"

DEMO

 angular.module("myApp", []) .controller("myCtrl", function ($scope) { $scope.prodTeams = [ { 'name':'Chelsea', 'id':1 }, { 'name':'UK', 'id':2 } ]; $scope.getRolesBasedOnSelectedTeamProd = function(){ alert('fired'); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> <body ng-app="myApp" ng-controller="myCtrl"> <select ng-model="selectedProdTeam" ng-options="team.name for team in prodTeams | orderBy:'name'" ng-change="getRolesBasedOnSelectedTeamProd()"> <option value="">Select Teams</option> </select> </body> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM