Javascript-форум (https://javascript.ru/forum/)
-   Angular.js (https://javascript.ru/forum/angular/)
-   -   Инициализация констант (https://javascript.ru/forum/angular/48803-inicializaciya-konstant.html)

dlis 17.07.2014 16:02

Инициализация констант
 
Здравствуйте, я новичок в angular, подскажите пожалуйста, как мне инициализировать константы в самом начале работы приложения. Сейчас они иницилизируются в блоке resolve роутера, но это не вариант, придётся для каждого роута писть один и тот же резолв. Так же если конттроллер вложе в другой, то родительский не увидит данных которые резолвит дочерний.

app.config(function($routeProvider) {
            $routeProvider.when('/', {
                    controller: 'AppCtrl',
                    resolve: {
                        initConstants: function($rootScope, $q, $location) {
                            console.log('start resovling');
                            var deffered = $q.defer();
                            
                            if ($rootScope.CONSTANTS){
                                console.log('constants already resolved!!!');
                                deffered.resolve();
                                return deffered.promise;
                            } 
                        
// загрузка констант с сервера.
                            Visualforce.remoting.Manager.invokeAction(
                                '{!$RemoteAction.MobileController.getConstants}',
                                function(result, event) {
                                    if (event.status){
                                        var jsonStr = result.replace(/&quot\;/g, '"');
                                        $rootScope.CONSTANTS = JSON.parse(jsonStr);
                                        deffered.resolve();
                                        console.log('constants resolved!!!');
                                        
                                        $location.path('/MyLearning');
                                    } else{
                                        console.error('loadConstants - error!');
                                        console.error(event);
                                        deffered.reject(event);
                                    }                                 
                            });    
                    
                            return deffered.promise;     
                        }
                    }                
                }).otherwise({
                  redirectTo: '/'
            });
        });


Хотелость бы как-нибудт инициализировать их в методе run, но как это сделать через promis не знаю

Tek 17.07.2014 16:13

для констант есть :
app.constant('APP_NAME','My App');


Часовой пояс GMT +3, время: 04:16.