加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 08:41:34 所属栏目:安全 来源:网络整理
导读:有一个角度的指令是一个可重用组件,最好的做法是公开一个可以从控制器访问的公共API? 因此,当有多个组件实例时,您可以从控制器访问 angular.directive('extLabel',function { return { scope: { name: '@',configObj: '=' },link: function(scope,iEleme
有一个角度的指令是一个可重用组件,最好的做法是公开一个可以从控制器访问的公共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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读