在没有 RequireJS 的情况下使用 Angular Dragula

Using Angular Dragula without RequireJS

我很乐意使用 angular-dragula 模块 (https://github.com/bevacqua/angular-dragula) 在我的 Angular 项目中实现拖放。但是,它似乎严重依赖 RequireJS。我已经有一段时间没有使用 Require 了,只是在那时才对一两个示例应用程序使用过。有没有一种简单的方法可以从这个模块中解开 Require?

作者好像觉得很简单(https://github.com/bevacqua/angular-dragula/issues/23),类似的问题也没有真正的解释就关掉了。我查看了代码,没有看到如何在不将 RequireJS 添加到我的项目(我不想这样做)的情况下加载模块。我是否坚持不使用此模块或添加 Require 或有没有办法在没有 Require 的情况下使用它?

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

  1. 将对 angular-dragula.js(或最小版本)的引用添加到 index.html 页面的 angular 声明下方,但在您创建应用程序的位置上方.
  2. 当您声明应用程序的依赖项时,请指定 angularDragula(angular)(不在引号中)。
  3. 像往常一样使用 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>

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