Внедрить библиотеку в угловой ui-роутер при разрешении состояния

0

Мне интересно, есть ли способ разрешить зависимость библиотеки от функции разрешения UI-маршрутизатора.

Что-то вроде этого:

$stateProvider.state('app.cart', {
                title    : "CART.TITLE",
                url      : '/cart',
                views    : {
                    'content@app': {
                        templateUrl: 'app/main/cart/cart.html',
                        controller : 'CartController as vm'
                    },
                },
                bodyClass: 'cart',
                resolve: { 
                    //fetch a library, ex. moment js
                    var moment = $http.get('moment.js');
                    body.append(moment);
                }
            });
  • 0
    Вы можете попробовать посмотреть на сервис $ q, который вы можете использовать для возврата результата обещания после загрузки библиотеки.
  • 2
    Почему вы хотите это сделать ? Попытайтесь объяснить, чего вы пытаетесь достичь.
Показать ещё 1 комментарий
Теги:
angular-ui-router

1 ответ

2
Лучший ответ

Не знаете, почему вы это сделаете, но вы можете легко получить JS файл в resolve. демонстрация

$stateProvider
  .state('state1', {
    url: 'state1',
    templateUrl: 'state1.tpl.html'
  })
  .state('state2', {
    url: 'state2',
    templateUrl: 'state2.tpl.html',
    resolve: {
      external: ['$http', function($http) {
        var someJs = 'https://gist.githubusercontent.com/jonaszuberbuehler/952c2f9a0c9e28557ed89c1e4d6fe8b7/raw/e6664811e1b34d9761500f4c46bfd2e1e2439d23/gistfile1.txt';
        return $http.get(someJs).then(function(result) {
          alert(result.data);
        });
      }]
    }
  });

Добавление его в DOM - еще один вопрос.

  • 0
    хорошо, так что как только я получил его, можно ли его использовать в коде?
  • 0
    Да, источник есть, что вы делаете с ним - это ваш выбор (например, добавление его в DOM или использование evil eval() ).
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню