我正在玩角带标签并遇到一个问题,如果我重新加载标签所基于的数据,那么没有任何标签实际打开。它只显示顶部标题,但没有任何数据。如果单击一个选项卡,它可以在实际打开的位置正常工作,但似乎无法自动执行。
我创建了一个显示此功能的plunkr,只需单击开关数据按钮:
这是html的样子:
author = author.Split().First().ToLower();
QueryContainer query = new TermQuery
{
Field = "author",
Value = author
};
var searchRequest = new SearchRequest
{
From = 0,
Size = 10,
Query = query
};
var searchResults = client.Search<Magazine>(searchRequest);
和JS:
{{1}}
答案 0 :(得分:1)
两个问题:
1)您将$scope.tabs.activeTab
分配给0,然后在下一行中立即覆盖它,方法是将标签分配给$scope.tabs = tabs2
2)由于浏览器事件的工作方式,指令绑定与您的活动标签分配无关。将其设置为超时0,这基本上是说“在下一个事件周期中执行此分配”可以解决您的问题。
.controller('TabDemoCtrl', function($scope, $templateCache, $timeout) {
$scope.switchData = function() {
var tabs2 = [
{title:'Home2', content: 'dfsdfds'},
{title:'Profile2', content: 'sfsdf'},
{title:'About2', content: 'urw'}
];
$scope.tabs = tabs2;
$timeout(function () {
$scope.tabs.activeTab = 1;
}, 0)
};