小编Her*_*Kan的帖子

在AngularJS中递归访问父指令的控制器

我需要得到父控制器,所以我的指令有一个require属性,如下所示:

module.directive('tag', function () {
    return {
        require: '?^tag',
        restrict: 'E',
        controller: function () {
            this.payload = getPayload();
        },
        link: function (scope, element, attrs, ctrl) {
            usePayload(ctrl.payload);
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

但是,link函数的ctrl参数返回当前指令的控制器,而不是父节点的控制器.AngularJS文档清楚地表明了这一点:

?^ - 尝试通过搜索元素的父项来查找所需的控制器,如果未找到则返回null.

我究竟做错了什么?

angularjs

4
推荐指数
1
解决办法
1766
查看次数

标签 统计

angularjs ×1