私は Angular JS と Angular UI (gem : angular-ui-rails 経由) を使用していますが、今日はモジュールの依存関係に悩まされています。誰かがアイデアを持っているなら!
次の例のように、並べ替え可能なモジュール ( https://github.com/angular-ui/ui-sortable ) をアプリに追加したいと思います。
問題は、既に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 ツリー内) の直前にロードされます。
次に最後に: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'
私は何を間違えましたか?