我有一個指令來創建一個元素列表來控制分頁和過濾器,我在我的應用程序的幾個點使用它。什麼是擴展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
這就是我所說的。你可以有一個功能的服務。你把它注入你需要的控制器並使用它的功能。 –
是的,我同意你可以有一個服務或工廠的。所有你的綁定邏輯應該在控制器內,而你可以在你的服務/工廠的業務邏輯。 –