在状态解析时在角度ui-router中注入库

时间:2016-04-22 15:48:58

标签: javascript angularjs angular-ui-router

我想知道是否有办法解决对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);
                }
            });

1 个答案:

答案 0 :(得分:2)

不确定为什么要这样做,但您可以轻松地在resolve内获取JS文件。 Demo

$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是另一个问题。