10

我正在使用 Angular JS 和 Angular UI(通过 gem:angular-ui-rails),今天我被模块依赖所困扰。如果有人有想法!

我想在我的应用程序上添加可排序模块(https://github.com/angular-ui/ui-sortable),如下所示:

http://jsfiddle.net/g/hKYWr/

问题是我已经加载了 UI-bootstrap 模块,所以我尝试这样做:

在 app.js 上:

 angular.module('ui', ['ui.bootstrap','ui.sortable']);

在 controllers.js 上

 function dndCtrl($scope) {
     $scope.list = ["one", "two", "three", "four", "five", "six"];
 }

应用程序中加载的 sortable.js文件。js的顺序是:

 //= require jquery
 //= require jquery_ujs
 //= require underscore
 //= require angular.min
 //= require ./angular/controllers/app.js
 //= require_tree ./angular
 //= require_tree .

因此 sortable.js 文件在 app.js 之后和 ui-bootstrap js 文件之前加载(在 ./angular 树中)

然后最后:我的 html 文件带有一个带有角度的简单列表循环:

<html ....... ng-app="ui">
 .....

<div ng-controller="dndCtrl">
    <ul ui-sortable ng-model="list">
        <li ng-repeat="item in list" class="item">{{item}}</li>
    </ul>
    <hr />
</div>

循环运行良好且 UI 引导程序(在我的情况下也是 Typeahead)但不可排序且控制台呈现

 TypeError: Object [object Object] has no method 'sortable'

我做错了什么或错过了什么?

4

1 回答 1

23

UI-sortable 依赖于jQuery UI。看起来您没有包含 jQuery UI JavaScript 文件。请注意,您可以包含整个 jQuery UI 库,也可以仅使用可排序模块创建自定义构建。

于 2013-09-16T17:48:21.163 回答