Javascript 使用无需任何要求的角度拖拉

Javascript 使用无需任何要求的角度拖拉,javascript,angularjs,requirejs,dragula,Javascript,Angularjs,Requirejs,Dragula,我希望在我的Angular项目中使用Angular dragula模块()实现拖放。然而,它似乎严重依赖于RequireJS。我已经有一段时间没有使用Require了,只有在那个时候,我才使用Require作为一两个示例应用程序。有没有一种简单的方法可以将需求从本模块中分离出来 作者似乎认为它很简单(),并且在没有真正解释的情况下也关闭了类似的问题。我看了代码,没有看到如何在不向项目中添加RequireJS的情况下加载模块(我不想这样做)。我是否被困在不使用此模块或添加Require的情况下,或

我希望在我的Angular项目中使用Angular dragula模块()实现拖放。然而,它似乎严重依赖于RequireJS。我已经有一段时间没有使用Require了,只有在那个时候,我才使用Require作为一两个示例应用程序。有没有一种简单的方法可以将需求从本模块中分离出来


作者似乎认为它很简单(),并且在没有真正解释的情况下也关闭了类似的问题。我看了代码,没有看到如何在不向项目中添加RequireJS的情况下加载模块(我不想这样做)。我是否被困在不使用此模块或添加Require的情况下,或者有没有办法在没有Require的情况下使用此模块?

好的,在评论人员的帮助下(谢谢大家!),我能够让此模块正常工作。你需要做几件事。首先,我将这个模块与其他模块捆绑在一起,并尝试调用它。这将不起作用,因为它需要使用参数(
angular
)进行初始化。因此,您需要执行以下操作:

  • 在angular声明下方的index.html页面中添加对angular-dragula.js(或min版本)的引用,但在创建应用程序的上方
  • 声明应用程序的依赖项时,请指定
    angularDragula(angular)
    (不在引号中)
  • 像平常一样使用dragula。如果您需要访问该服务,名称将为
    angularDragula
  • 例如,以下是我的应用程序声明:

    var app = angular.module('app', [
      'ngRoute',
      angularDragula(angular)
    ]);
    
    然后,为了获得一个能够拖放的简单列表,这是我的html:

    <div dragula='"bag-one"' dragula-model="vm.items">
        <div ng-repeat="item in vm.items">{{ item }}</div>
    </div>
    
    
    {{item}}
    

    注意,与示例不同,我没有在任何地方声明angularDragula。在作者给出的示例中,他需要
    angular
    并创建
    angular
    变量,然后他需要
    angular dragula
    并创建
    angular dragula
    变量。如果您没有使用
    RequireJS
    ,只要您以正确的顺序加载脚本,就不需要这样做。

    浏览源代码,它看起来像是
    dist/angular dragula.js
    取决于require,但缩小版本可能不需要。你试过使用缩小版看看它是否有效吗?是的,我试过了,但似乎不起作用。部分问题是,它也希望通过传入angular来初始化,因此我很难将其作为angular中的依赖项来包含。我认为您可以将全局变量
    angular
    的一个实例传递给它,因为
    require('angular')
    无论如何都会返回它。试试看。让我们知道这是否有效。我在下面发布了我的答案。如果所有内容都以正确的顺序加载,并且您使用作者创建的变量名,那么我们可以绕过require。至于AMD清洁,我没有达到尝试的目的。谢谢大家的帮助。我正在我的ionic应用程序中尝试。我没有在index.html中显式加载angular,而是由ionic处理。这会改变我的做法吗?按照您所描述的执行
    angularDragula
    返回
    函数寄存器(角度){…
    但调用它时出错
    无法读取
    var app=angular.module('dragula',['ng'])处未定义的属性'module';
    我正在加载
    dist/angularDragula.js
    在ionic之后但在我的
    app.js
    之前,并在我的
    app.js
    依赖项中声明
    angularDragula(angularDragula)(我在加载ionic依赖项之前和之后都尝试过,没有区别)。不管它是否工作。我没有将正确的依赖项传递给我的控制器(DragularService)。感谢您提供了伟大的解决方案!是的,它工作了!但现在我所有的测试都失败了:错误:引用错误:找不到变量:angularDragula