Javascript 什么';扩展angularjs指令功能的最佳方式是什么?
我有一个指令来创建一个元素列表来控制分页和过滤器,我在应用程序的几个点上使用它 我想知道向指令中添加自定义方法的最佳方法是什么 例如:Javascript 什么';扩展angularjs指令功能的最佳方式是什么?,javascript,angularjs,controller,directive,Javascript,Angularjs,Controller,Directive,我有一个指令来创建一个元素列表来控制分页和过滤器,我在应用程序的几个点上使用它 我想知道向指令中添加自定义方法的最佳方法是什么 例如: angular.module('example').directive('list', function () { return { scope: { elements: '=ngModel', filters: '=?' }, restrict: 'E',
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>
{{result.element_1}}
{{result.element_2}}
我不知道在指令中创建控制器是一种好的做法,还是有更好的方法来实现这一点
提前感谢。您已经在指令目标中指定了控制器。您需要使用该控制器:
scope: {
elements: '=ngModel',
filters: '=?'
},
restrict: 'E',
transclude: true,
templateUrl: '/static/templates/list.html',
**controller: function () {
// Some stuff of pagination and filters functions
}**
但是你可以给控制器内部指令。虽然这样做会更好,但是你可以有嵌套指令。如果你要在多个控制器之间共享指令,您可以创建一个服务并将其注入使用它的控制器。但是如果我使用该指令6次,并且每次使用它,我都需要一个自定义方法来专门化工作,我是否应该将所有自定义函数都放在该指令中?在其他控制器中专门化函数不是更好吗?这就是我所说的。您可以使用具有功能的服务。您可以将其注入所需的控制器并使用其功能。是的,我同意您可以为此设置一个服务或工厂。所有绑定逻辑都应该位于控制器内部,而业务逻辑可以位于服务/工厂中。不,我需要专门化指令的特定实例