我想在使用 AngularJs 和 UI Bootstrap 的动态生成选项卡的内容中使用 ng-include。
我在这里有一个 Plunker:http://plnkr.co/edit/2mpbovsu2eDrUdu8t7SM?p= preview
<div id="mainCntr" style="padding: 20px;">
<uib-tabset>
<uib-tab ng-repeat="tab in tabs" active="tab.active" disable="tab.disabled">
<uib-tab-heading>
{{tab.title}} <i class="glyphicon glyphicon-remove-sign" ng-click="removeTab($index)"></i>
</uib-tab-heading>
{{tab.content}}
</uib-tab>
</uib-tabset>
</div>
JS代码:
$scope.addTab = function() {
var len = $scope.tabs.length + 1;
var numLbl = '' + ((len > 9) ? '' : '0') + String(len);
var mrkUp = '<div>' +
'<h1>New Tab ' + numLbl + ' {{foo}}</h1>' +
'<div ng-include="tab.tabUrl" class="ng-scope"></div>' +
'</div>';
$scope.tabs.push({title: 'Tab ' + numLbl, content: $compile(angular.element(mrkUp))($scope)});
}
在 Plunker 中,单击“添加选项卡”按钮。它调用 $scope 中的一个函数,该函数将一个新选项卡推送到集合中,但传入一些动态生成的内容,其中包括一个 ng-include 指令。预期的输出是 ng-include 将显示在选项卡内容区域内。
谢谢