angularjs – 如何从作为可重用组件的指令公开一个公共API?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何从作为可重用组件的指令公开一个公共API?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有一个角度的指令是一个可重用组件,最好的做法是公开一个可以从控制器访问的公共API?
因此,当有多个组件实例时,您可以从控制器访问
angular.directive('extLabel',function {
    return {
        scope: {
            name: '@',configObj: '='
        },link: function(scope,iElement,iAttrs) {
            // this could be and exposed method
            scope.changeLabel = function(newLabel) {
                scope.configObj.label = newLabel;
            }
        }
    }
});

然后当有:

<ext-label name="extlabel1" config-obj="label1"></ext-label>
<ext-label name="extlabel2" config-obj="label2"></ext-label>
<ext-label name="extlabel3" config-obj="label3"></ext-label>

如何获取访问控制器中extLabel2的scope.changeLabel?

是否有意义?

这对你工作吗?
angular.directive('extLabel',function() {
    return {
        restrict: 'E',scope: {
            api: '='
        },iAttrs) {
            scope.api = {
                    doSomething: function() { },doMore: function() { }
                };
        }
    };
});

从包含父级

<ext:label api="myCoolApi"></ext:label>

和在控制器

$scope.myCoolApi.doSomething();
$scope.myCoolApi.doMore();

猜你在找的Angularjs相关文章