13

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

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

4

1 回答 1

24

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

  1. 在您的 index.html 页面中添加对 angular-dragula.js(或最小版本)的引用,在 angular 声明下方但在您创建应用的位置上方。
  2. 当您声明应用程序的依赖项时,请指定angularDragula(angular)(不在引号中)。
  3. 像往常一样使用dragula。如果您需要访问该服务,名称将是angularDragula.

例如,这是我的 app 声明:

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只要您以正确的顺序加载脚本,如果您不使用,则不需要这样做。

于 2015-11-17T14:48:20.107 回答