История изменений
Исправление Dantix, (текущая версия) :
Все (большинство) нестрандарные селекты берут данные из обынчого селекта, который скрывают, таким образом я не вижу ниодной причины заниматься таким извращением с apply и так далее.
У селекта есть ng-options, которым можно таки успешно пользоваться.
И вопрос в догонку, а где лучше обращаться к серверу?
В сервисе. Сервис инжектить в контроллер.
angular.module('app').service('someservice', ['$http', function($http) {
function getData() {
return $http.get('url').then(function(result) {
return result.data;
}),
function(error) {
//error handling
};
}
return {
getData: getData
};
}]);
///////////////////////////////
angular.module('app').controller('controller', ['$scope', 'someservice', function($scope, someservice) {
$scope.items = [];
someservice.getData().then(function(data) {
$scope.items = data;
});
}]);
Это если совсем просто, но обычно показывать страницу до того как загрузятся данные не целесообразно, поэтому можно в роутере в resolve объекте получить все давнные и потом передать их в контроллер.
Исходная версия Dantix, :
Все (большинство) нестрандарные селекты берут данные из обынчого селекта, который скрывают, таким образом я не вижу ниодной причины заниматься таким извращением с apply и так далее.
У селекта есть ng-options, которым можно таки успешно пользоваться.
И вопрос в догонку, а где лучше обращаться к серверу?
В сервисе. Сервис инжектить в контроллер.
angular.module('app').service('someservice', ['$http', function($http) {
function getData() {
$http.get('url').then(function(result) {
return result.data;
}),
function(error) {
//error handling
};
}
return {
getData: getData
};
}]);
///////////////////////////////
angular.module('app').controller('controller', ['$scope', 'someservice', function($scope, someservice) {
$scope.items = [];
someservice.getData().then(function(data) {
$scope.items = data;
});
}]);
Это если совсем просто, но обычно показывать страницу до того как загрузятся данные не целесообразно, поэтому можно в роутере в resolve объекте получить все давнные и потом передать их в контроллер.