我正在将我们的.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。