ui-sortable ディレクティブの ng-repeats で発生していた問題を調べていたときに、これと同じ問題であることが後でわかりました ( https://github.com/angular-ui/ui-sortable/issues/ 2 )、ui-sortable ディレクティブの範囲に関する別の問題に遭遇しました。
このフィドルを見ると:http://jsfiddle.net/hKYWr/707/
コンソールを開いてください。ドラッグを開始および停止すると、コンソールに「開始」と「停止」が表示されます。
ただし、別のオプションで 2 番目の ui-sortable セクションを導入すると、最初のイベントが上書きされます (またはその逆)。「停止」が最初の色のセットによって呼び出されなくなったことに気付くでしょう: http://jsfiddle.net/hKYWr/708/
angular-ui.js ファイルをステップ実行する際に、問題を引き起こす行は次のとおりです。
// If user provided 'start' callback compose it with onStart function
_start = opts.start;
opts.start = function(e, ui) {
onStart(e, ui);
if (typeof _start === "function")
_start(e, ui);
};
// If user provided 'start' callback compose it with onStart function
_stop = opts.stop;
opts.stop = function(e, ui) {
onStop(e, ui);
if (typeof _stop === "function")
_stop(e, ui);
};
// If user provided 'update' callback compose it with onUpdate function
_update = opts.update;
opts.update = function(e, ui) {
onUpdate(e, ui);
if (typeof _update === "function")
_update(e, ui);
};
_stop は、最後に呼び出された ui-sortable から「未定義」で上書きされるようです。
同じページで複数の ui-sortable 要素を処理する方法はありますか? 何か間違ったことをしている場合はお知らせください。事前に感謝します。