var app = angular.module("app",[]); app.controller("ctrl", function ($scope) { $scope.title = "点击展开"; $scope.text = "这是内部内容"; $scope.list = [{ title: "标题1", text: "内容1" }, { title: "标题2", text: "内容2" }, { title: "标题3", text: "内容3" }]; }) app.directive('acc', function () { return { transclude: true, template: ' ', controller: function () { var expanders = []; this.got = function (select) { angular.forEach(expanders, function (expander) { if (select != expander) { expander.showMe = false; } }); } this.add = function (expander) { expanders.push(expander); } } } }); app.directive('expander', function () { return { replace: true, transclude: true, require: '^?acc', template: '' + '', link: function (scope, element, attrs, ctrl) { scope.showMe = false; ctrl.add(scope); scope.toggle = function toggle() { scope.showMe = !scope.showMe; ctrl.got(scope); } } } });{ {title}}' + ' ' + '
{ {x.text}}