我很想在我的Angular项目中使用Angular dragula模块实现拖放(https://github.com/bevacqua/angular-dragula)。然而,它似乎在很大程度上依赖于RequireJS。我已经有一段时间没有使用Require了,只是在一两个示例应用程序中使用了它。有没有一种简单的方法可以从这个模块中解开Require?
作者似乎认为这很简单(https://github.com/bevacqua/angular-dragula/issues/23)并在没有真正解释的情况下关闭了类似的问题。我已经看了代码,不知道如何在不将RequireJS添加到我的项目中的情况下加载模块(我不想这样做)。我是不是一直不使用这个模块或添加Require,或者有没有一种方法可以在没有Require的情况下使用它?
好吧,在那些发表评论的人的帮助下(感谢大家!),我能够让这件事发挥作用。您需要做几件事。首先,我将此模块与其他模块捆绑在一起,并尝试调用它。这将不起作用,因为它需要使用参数(angular
)进行初始化。因此,您需要执行以下操作:
- 在你的index.html页面上,在angular的声明下方,但在你创建应用程序的位置上方,添加对angular-dragula.js(或最新版本)的引用
- 当您声明应用程序的依赖项时,请指定
angularDragula(angular)
(不加引号) - 像往常一样使用龙舌兰。如果您需要访问该服务,则名称为
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>
注意,我没有在任何地方声明angularDougula,与示例不同。在作者给出的示例中,他需要angular
并创建angular
变量,然后需要angular-dragula
并创建angularDragula
变量。如果不使用RequireJS
,只要按正确的顺序加载脚本,就不需要这样做。