我正在尝试在指令模板中创建一个选项卡,该选项卡有效但我不知道如何在选择适当的选项卡时呈现其他指令。
这是我的tabs指令的代码。
angular.module('myApp')
.directive('q2022Tabs', ['$rootScope', function ($rootScope) {
return {
restrict: 'EA',
transclude: true,
scope: {
max: '=',
label: '='
},
require: "q2022PieRadarChart" + "q2022RadarChart",
template: `
<form name="outerForm" class="tab-form-demo">
<uib-tabset active="activeForm">
<uib-tab index="1" heading="Radar Chart">
(content tab)
</uib-tab>
<uib-tab index="2" heading="Pie Radar Chart">
(content tab 2)
</uib-tab>
</uib-tabset>
</form>
`
};
}])
.controller('ExController', ['$scope', '$rootScope', function ($scope, $rootScope) {
}])
答案 0 :(得分:0)
首先,我更新了模板代码,如下所示:
template: '<div class="views">' +
' <div class="view-wrapper" ng-repeat="view in views">' +
' <div view="{{view.dir}}"></div>' +
' </div>' +
'</div>',
请注意,我创建了一个新的“view”指令。接下来,视图指令定义如下:
app.directive('view', ['$compile', function (compile) {
return {
restrict: 'A',
scope: {
view: '@'
},
replace: true,
template: '<div class="view"></div>',
controller: ['$scope', function (scope) {
scope.$watch('view', function (value) {
scope.buildView(value);
});
}],
link: function (scope, elm, attrs) {
scope.buildView = function (viewName) {
var view = compile('<div ' + viewName + '></div>')(scope);
elm.append(view);
}
}
}
}]);
基本上,view.dir变量作为属性传递给'view'指令,然后该指令监视它的值并用其中的指令编译模板。