16

ui-sortable ディレクティブを使用してソート可能に angular-ui を使用しています。スコープの状態に基づいてソート可能な機能を動的に有効/無効にすることは可能ですか? したがって、スコーププロパティの状態を変更するボタンが必要であり、このプロパティのソートに応じて、機能するかどうかが異なります。

4

4 に答える 4

26

angular ディレクティブは、並べ替え可能なオプションが変更されたときの監視をサポートしています。

scope.$watch(attrs.uiSortable, function(newVal, oldVal){

そのため、jqueryui のソート可能なドキュメントを見て、プラグインの正しいプロパティを更新するだけで済みました。

HTML

<ul ui-sortable="sortableOptions" ng-model="items">
   <li ng-repeat="item in items">{{ item }}</li>
 </ul>
<button ng-click="sortableOptions.disabled = !sortableOptions.disabled">Is Disabled: {{sortableOptions.disabled}}</button>

JS

app.controller('MainCtrl', function($scope) {
  $scope.items = ["One", "Two", "Three"];

  $scope.sortableOptions = {
    disabled: true
  };
});
于 2013-07-17T21:15:19.507 に答える
0

ui-ifバージョンとソート不可能なバージョンを切り替えるために使用できますがui-sortable、これは恐ろしい設計です。ただし、 jQuery Sortable Docsをチェックアウトした場合は、のオプションがあるようですdisabled。ディレクティブがオプション オブジェクトの変更を現在監視している場合は、このオプションを簡単に切り替えることができます。options オブジェクトが値ではなく参照によって監視されている場合は、おそらく微調整でプルリクエストを開く必要がありますか?

于 2013-05-04T08:50:17.413 に答える
-1

これに対する私の最初の試みには、スコープ内の値に基づいて ui-sortable を含む、または含まないテンプレート フラグメントをコンパイルする link 関数を含む新しいディレクティブが含まれます。

時間があるときにコーディングします。

于 2013-04-24T02:04:00.587 に答える