0

次の例では、アコーディオングループディレクティブは、アコーディオングループディレクティブ内の「require:'^ accordion'」属性を使用して、コントローラーとスコープを親アコーディオンと共有します。

アコーディオングループの下に子ディレクティブを作成したい場合、アコーディオンコントローラーにもどのようにアクセスしますか?^accordionと^accordionGroupの要求は機能していないようです。

https://github.com/angular-ui/bootstrap/blob/master/src/accordion/accordion.js

4

1 に答える 1

1

それはそのように機能します。私はただ愚かでした。ここで後世のためのフィドル。

'use strict';

angular.module('myApp', []).controller('OneController', function() {
    this.test = function(element) {
        element.css('color', 'red');
    }
}).directive('one', function() {
    return {
        restrict: 'E',
        transclude: true,
        replace: true,
        controller: 'OneController', 
        template: '<span ng-transclude>And a </span>',
    }
}).directive('two', function() {
    return {
        restrict: 'E',
        transclude: true,
        replace: true,
        require: '^one',
        template: '<span ng-transclude>and a </span>',
    }
}).directive('three', function() {
    return {
        restrict: 'E',
        transclude: true,
        replace: true,
        require: '^one',
        template: '<span ng-transclude>and a one two</span>',
        link: function(scope, element, attrs, ctrl) {
            ctrl.test(element);
        }
    }
});
于 2013-02-19T02:06:05.663 に答える