ページネーションとフィルタを制御する要素のリストを作成する指示がありました。私はアプリケーションのいくつかの点でそれを使用しています。angularjsディレクティブ機能を拡張する最も良い方法は何ですか?
ディレクティブにカスタムメソッドを追加する最も良い方法は何ですか。
例:
angular.module('example').directive('list', function() {
return {
scope: {
elements: '=ngModel',
filters: '=?'
},
restrict: 'E',
transclude: true,
templateUrl: '/static/templates/list.html',
controller: function() {
// Some stuff of pagination and filters functions
}
}
}
マイディレクティブのテンプレートは次のようになります。
<div class="list">
<!-- Pagination stuff -->
<div ng-transclude></div>
<!-- Pagination stuff -->
</div>
そして、私はこのようなディレクティブを使用します。
<list elements="elements">
<div ng-controller="CustomMethodsController">
<div class="col-xs-6">
{{result.element_1}}
</div>
<div class="col-xs-6">
{{result.element_2}}
</div>
</div>
</list>
私はコントローラを作成するかどうかわかりませんディレクティブの内部は良い習慣であるか、これを達成するためのより良い方法があります。
ありがとうございます。
しかし、私はディレクティブを6回使用し、私はそれを使用するたびに、私は仕事を専門にするためのカスタムメソッドが必要です。それは他のコントローラの機能をより専門化するのではないのですか? – Sergio
それは私が言っていたことです。関数を持つサービスを持つことができます。あなたはそれを必要なコントローラに注入し、その機能を使用します。 –
はい私はあなたのサービス/工場で持つことができるビジネスロジックとは対照的に、that.Allのバインディングロジックはコントローラの内部になければならないサービスや工場を持つことができることに同意します。 –