如何禁用角度库依赖?

时间:2016-01-25 09:38:25

标签: angularjs typescript bootstrap-datetimepicker angular-bootstrap jspm

我正在使用TypeScriptAngularJSES6JSPM开展项目。我有一些库,当然包括AngularJS和其他一些依赖于AngularJS的库,比如angular-bootstrap-datetimepicker

我遇到的问题是angular-bootstrap-datetimepicker试图再次加载角度。我收到了这个警告:

  

警告:尝试不止一次加载角度。

经过一些研究后,我能够通过编辑config.js文件来“解决”问题:

'npm:angular-bootstrap-datetimepicker@0.4.0': {
  // 'angular': 'npm:angular@1.4.8', 
  'moment': 'npm:moment@2.11.0'
},

如果我取消注释该行,则会发出警告。我知道这不是一个解决方案,因为任何npm更新都会覆盖我的更改,而其他库也可以做同样的事情。那么有谁知道如何以“正确的方式”禁用这些依赖关系?

感谢。

修改

'use strict';

import 'angular';
import 'jquery';
import * as _ from 'lodash';
import appData     from '../app.data/module';
import appCore     from '../app.core/module';
import appInstance from '../app.instance/module';

export default angular.module('app', [
  appData.name,
  appCore.name,
  appInstance.name
]);

angular.bootstrap(document.documentElement, ['app']);

编辑2:

'use strict';

export default function RouteConfig($urlRouterProvider): void {
  // apply consistent trailing slashes and casing
    $urlRouterProvider.rule(function ($injector, $location) {

      var path = $location.path(),
        search = $location.search(),
        newPath,
        params;

      if (path === '/') {
        newPath = '/';
      }

      if (path[path.length - 1] === '/') {
        newPath = path.substring(0, path.length - 1);
      } else {
        newPath = path;
      }

      if (Object.keys(search).length > 0) {
        params = [];
        angular.forEach(search, function (v, k) {
          params.push(k + '=' + v);
        });

        newPath += '?' + params.join('&');
      }

      newPath = newPath.toLowerCase();

      if ($location.url() === newPath) {
        return;
      }

      $location.replace().path(newPath);
    });

    $urlRouterProvider.otherwise('/');
}

0 个答案:

没有答案