14.12.2016, 20:41
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
Прикрутить к ui-route stateProvider.state аналоги jqueryAjax.success
Доброго времени суток.
Знатоки, пожалуйста, направьте в правильном направлении. Необходимо к stateProvider.state как-то прикрутить $http.get().success, $http.get().before, $http.get().after или$http.get().error . Как организовать?
Мой вариант:
app.config(function($stateProvider,$urlRouterProvider){
$stateProvider
.state('accounts_groups',{
url: '/accounts/groups',
controller: function($scope,$http){
menuSelectAfterReload('account','groups');
alert(2);
$http.get('/accounts/groups/show')
.success(function(data){
alert(1);
});
}
});
на моем коде $http.get срабатывает только при обновлении, дальше при переходе с другого урл на '/accounts/groups' - нет. Что посоветуете? Заранее спасибо
|
|
14.12.2016, 21:14
|
Новичок на форуме
|
|
Регистрация: 14.12.2016
Сообщений: 3
|
|
|
|
14.12.2016, 21:15
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
В общем, хотел прикрутить ngProgress API
|
|
14.12.2016, 21:50
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
Не получается что-то. Запускается один раз при обновлении и все на этом. Дальше при переходе по ссылке не работает. Мой код:
app.config(function($stateProvider,$urlRouterProvider){
$stateProvider
.state('accounts_groups',{
url: '/accounts/groups',
resolve: {
promiseObj: function($http){
return $http({method: 'GET',url: '/accounts/groups/show'})
.then(function successCallback(response){
alert('success');
}, function errorCallback(response){
alert('error');
});
}
},
controller: function($scope,promiseObj){
menuSelectAfterReload('account','groups');
promiseObj;
}
});
|
|
14.12.2016, 22:11
|
Новичок на форуме
|
|
Регистрация: 14.12.2016
Сообщений: 3
|
|
Создай пример в онлайн редакторе, дело видимо не в настройках ui-router. А вообще если ngProgress API нужен только для перехода по страницам можно один раз в конфиге повесить обработчики событий на ui-router
$rootScope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams, options){
ngProgress.start();
})
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams){
ngProgress.complete();
})
|
|
15.12.2016, 23:05
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
Код отрабатывает только один раз. Т.е., перезагрузились на другой странице, потом переходим по ссылке #/somelink, срабатывает ngProgress. Теперь переходим на другую ссылку и обратно на #/somelink - уже не срабатывает, т.е. не отправляется ajax-запрос. В чем может быть проблема одноразовой работы? Такое чувство, как будто где-то в кэше сидит и при повторном переходе на ту же ссылке, отдает из кэша. Но это конечно мое предположение ... какие мысли могут быть?
|
|
16.12.2016, 10:15
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
Проблема решена! Оказалось, что я переходил по ссылкам, УРЛ менялись, а запрос отправлялся только на одной тестовой ссылке. Поэтому ngProgress срабатывал один раз.
|
|
16.12.2016, 19:13
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
Проблема до сих пор актуальна, шаблон загружается только один раз, помогите пожалуйста. Код:
var app = angular.module('app', ['ui.router']);
app.config(function($stateProvider,$urlRouterProvider){
$stateProvider
.state('accounts_users',{
url: '/accounts/users',
templateUrl: '/index/test',
controller: function($scope){
menuSelectAfterReload('account','users');
}
})
.state('accounts_groups',{
url: '/accounts/groups',
templateUrl: '/accounts/groups/show',
controller: function($scope){
menuSelectAfterReload('account','groups');
}
});
$urlRouterProvider.otherwise('/dashboard/orders');
});
app.run(function($rootScope) {
$rootScope.$on('$stateChangeStart', function() {
NProgress.start();
});
// When route successfully changed.
$rootScope.$on('$stateChangeSuccess', function() {
NProgress.done();
});
});
|
|
23.12.2016, 09:00
|
Аспирант
|
|
Регистрация: 23.03.2011
Сообщений: 69
|
|
В общем плюнул на этот костыльный ангуляр и сам написал свой роутер. Кошмар какой-то
|
|
|
|