Я устанавливаю значение переменной url внутри.provider в services.js из.config в app.js
Services.js:
function BaseUrl(url) {
this.url = url;
}
angular.module('eter.services', [])
.provider("baseurl", [function () {
var url = null;
this.setUrl = function (textString) {
url = textString;
};
this.$get = [function () {
return new BaseUrl(url);
}];
}]);
app.js (внутри запроса json в.config):
baseurlProvider.setUrl(schoolObj.school_domain);
Когда я пытаюсь использовать метод провайдера baseurl get внутри контроллера, я получаю null (начальное значение), потому что json-запрос внутри.config в app.js слишком медленный.
controllers.js:
...
$http.get(baseurl.url +'eter-app-api/'+ apikey +'&startpage=1').
...
Как ускорить процесс/замедлить работу контроллера?
Вы можете бутстрап угловой после получения базового url с сервера:
var app = angular.module('app', ['eter.services'])
.config(['baseUrl', 'baseurlProvider', function (baseUrl, baseurlProvider) {
baseurlProvider.setUrl(baseUrl);
}]);
$.getJSON('/getBaseUrl', function (baseUrl) {
app.value('baseUrl', baseUrl);
angular.bootstrap(document, [app.name]);
});