javascript - 以 Angular 从不同模块访问 Controller

标签 javascript angularjs angularjs-directive

我正在使用 angular.layout 库 ( https://github.com/angular-ui/ui-layout )。我想从指令中手动切换面板。

它是库中的 Controller :

...
angular.module('ui.layout', [])
  .controller('uiLayoutCtrl', ['$scope', '$attrs', '$element', 'LayoutContainer', function uiLayoutCtrl($scope, $attrs, $element, LayoutContainer)
...

这个 Controller 有方法 ctrl.toggleAfterctrl.toggleBefore

所以,问题是:如何在我自己的指令中使用它。我试过这种方式:

...
return {
        require: 'uiLayoutCtrl',
        link: function(scope, element, attrs, ctrl) {
            ...
        }

    }
...

它不起作用。

谢谢!

最佳答案

尝试要求指令而不是 Controller :

require: 'uiLayout', // both directives in the same element // OR
//require: '^uiLayout' //  your directive is a child of uiLayout
link: function (scope, elm, attr, ctrl) {
    // ctrl should be uiLayoutCtrl
}

关于javascript - 以 Angular 从不同模块访问 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30372402/

相关文章:

javascript - 如果子数组的长度大于零,则显示对象

javascript - 我想比较angularjs中输入文本框的旧值和新值是否相同?

javascript - 如何动态访问 angularjs 指令中的属性?

javascript - AngularJS - 有条件地使用属性指令

javascript - 在 React 中处理复选框

javascript - 获取成功后主干 View 不渲染

javascript - 如何在 <input> 为空时发出 CSS 警告(最好没有 JS)

javascript - 在 amcharts 中淡入淡出(没有 startEffect 的 startAlpha)

javascript - 无法通过 Angularjs 加载谷歌地图 URL

javascript - 我怎样才能共享范围并在 Angular Directive(指令)中传递数据