AngularJS和UI可排序 - 没有方法'可排序'错误

时间:2013-09-16 17:33:59

标签: angularjs angular-ui

我正在使用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']);

on controllers.js

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

在应用中加载了sortable.js file。 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'

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

1 个答案:

答案 0 :(得分:23)

UI-sortable取决于jQuery UI。它看起来并不像你包含了jQuery UI JavaScript文件。请注意,您可以包含整个jQuery UI库,也可以仅使用可排序模块创建自定义构建。