带有默认选项的AngularJS指令
我只是从angularjs开始,并且正在努力将一些旧的JQuery插件转换为Angular指令。我想为我的(元素)指令定义一组默认选项,可以通过在属性中指定选项值来覆盖这些默认选项。 我一直在寻找其他人这样做的方式,并且在angular-ui库中ui.bootstrap.pagination似乎做了类似的事情。 首先,所有默认选项都在常量对象中定义: .constant('paginationConfig', { itemsPerPage: 10, boundaryLinks: false, ... }) 然后,将getAttributeValue实用程序功能附加到指令控制器: this.getAttributeValue = function(attribute, defaultValue, interpolate) { return (angular.isDefined(attribute) ? (interpolate ? $interpolate(attribute)($scope.$parent) : $scope.$parent.$eval(attribute)) : defaultValue); }; 最后,在链接函数中使用它来读入属性 .directive('pagination', ['$parse', 'paginationConfig', function($parse, config) { ... controller: 'PaginationController', link: function(scope, element, attrs, paginationCtrl) { var boundaryLinks = paginationCtrl.getAttributeValue(attrs.boundaryLinks, config.boundaryLinks); …