Я заполняю раскрывающееся меню выбора, вызывая API. Когда пользователь выбирает параметр в меню выбора, я хочу запустить вторую функцию - $scope.getRoles()
. Тем не менее, это стреляет немедленно. Есть идеи, почему это происходит? Пожалуйста, смотрите мой код ниже.
html
<select>
<option ng-change="getRoles()" ng-repeat="country in countries">{{ country.countryCode }}</option>
</select>
угловой
app.controller("jobsCtrl", function($scope, careerData) {
//get list of countries when app loads
careerData.countryList().then(function successCallback(response) {
$scope.countries = response.data;
$scope.countries.unshift({countryCode: "Select a country"});
}, function errorCallback(response) {
console.log(response);
});
$scope.getRoles = careerData.jobByCountry().then(function successCallback(response) {
console.log(response)
}, function errorCallback(response) {
console.log(response);
})
});
app.factory('careerData', ['$http', function($http){
return {
countryList: function() {
return $http({
method: 'GET',
url: 'testUrl'
})
},
jobByCountry: function() {
return $http({
method: 'GET',
url: 'someurl'
})
}
}
}]);
ng-model
к элементуselect
, затем поместите директивуng-change
над элементом select вместо размещения ее наoption
. - person Pankaj Parkar   schedule 11.07.2016<option>
. Не поддерживается кросс-браузер ... особенно IE и, я думаю, Safari - person charlietfl   schedule 11.07.2016