AngularJS (v1.5.6) とes6をでサービスを制作している者です。
angular-ui-sortable
というライブラリを使って要素をドラッグで並び替えるUIを作成しているのですが、このライブラリがjQueryとjQueryUIに依存しているため、仕方なくそれらを使おうと思っています。
以下の様なコードを書いたところ、 ui.sortable: jQuery should be included before AngularJS!
というエラーが出てうまく動きませんでした。
lang
1'use strict'; 2 3import 'jquery'; 4import 'jquery-ui'; 5import angular from 'angular'; 6import 'angular-ui-sortable'; 7 8class MainController { 9 10 constructor() { 11 this.items = [ 12 { name: 'aaa', age: 15 }, 13 { name: 'bbb', age: 16 }, 14 { name: 'ccc', age: 17 } 15 ]; 16 } 17} 18 19angular.module('app', ['ui.sortable']) 20 .controller('MainController', MainController);
lang
1<html ng-app="app"> 2 <head> 3 <title>Test</title> 4 </head> 5 <body ng-controller="MainController as main"> 6 <div ui-sortable ng-model="main.items"> 7 <div ng-repeat="item in main.items"> 8 <p>{{ item.name }}</p> 9 <p>{{ item.age }}</p> 10 </div> 11 </div> 12 <script src="bundle.js"></script> 13 </body> 14</html>
エラーメッセージの内容から、importされる順番に問題があるのかと思い、上記のコードをトランスパイルした際にできるファイルを見てみると、なぜかjQueryではなくAngularJSのコードが最初に記載されていました。
なぜそのような順番でトランスパイルされるのか、またその順番を制御する方法があるのか、ご存知の方がいらっしゃいましたらご回答をよろしくお願いします。
※トランスパイルはBrowserifyとbabelifyを使っています
※jQueryとjQueryUIを script
タグを使って bundle.js
の前に読み込めば問題なく動作します
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/06 08:22
2016/06/06 09:51 編集
2016/06/11 14:52