当需要AngularJS-Dragula包装时,不加载AngularJS指令



我正在将我们的.NET框架项目迁移到.NET Core。以及以前我们以前依靠.NET框架中的大会工具。我们现在正在使用webpack。

我有一个使用" angularjs-dragula"软件包的指令。WebPack条目定义如下

'bundles/grouping':
[
    "./Scripts/angularjs-dragula.js",
    "./App/components/grid.directive.js",
    "./App/components/inline-edit.directive.js",
    "./App/services/grouping.service.js",
    "./App/components/grouping/grouping.directive.js"
],

i初始化指令如下:

(function () {
  angular.module('App').requires.push(angularDragula(angular));
    angular
      .module('App')
      .directive('appCustomGrouping', appCustomGrouping);
    appCustomGrouping.$inject = ['urlService', 'groupingService', 'dragulaService' ];
  function appCustomGrouping(urlService, groupingService, dragulaService) {
...

,该页面永远不会加载grouping.diractive。而且没有错误。除非我在WebPack入口处删除Dragula文件。然后,指令将加载,但抱怨:

参考:未定义Angulardragula [更多]

我尝试依靠WebPack导入软件包,并将其从输入定义中删除。我将Angularjs-Dragula安装到我的node_modules中,并使用了

var angularDragula = require('angularjs-dragula');
(function () {
  angular.module('App').requires.push(angularDragula(angular));
    angular
      .module('App')
      .directive('appCustomGrouping', appCustomGrouping);
    appCustomGrouping.$inject = ['urlService', 'groupingService', 'dragulaService' ];
  function appCustomGrouping(urlService, groupingService, dragulaService) {
...

然而,这会导致相同的行为。

Angularjs-Dragula软件包有效,因为我们在搬到WebPack之前就使用了它。但是,现在它似乎是默默失败的,并用它的其余指令?

我如何开始诊断此问题?

dragula的angularjs包装器不寻常,因为它放在全局范围上的函数 angularDragula。当用angular调用该函数作为参数时,该功能将用AngularJS注册dragula模块。它返回带有模块名称的字符串" dragula"。

angularDragula(angular)
angular.module("app",["dragula"])
.run(function(dragulaService) {
  console.log(dragulaService);
})  
<script src="//unpkg.com/angular/angular.js"></script>
<script src="//unpkg.com/angularjs-dragula/dist/angularjs-dragula.js"></script>
<body ng-app="app">
    <h1>Hello AngularJS!</h1>
</body>

页面永远不会加载clobing.diractive

我如何开始诊断这个问题?

我将使用开发人员控制台插入断点。然后检查变量。

上面的示例加载了用dragula加载AngularJ,并成功记录了DragularService。

相关内容

  • 没有找到相关文章

最新更新