角带标签在数据重新加载时不会打开任何标签

时间:2015-05-05 14:23:51

标签: angularjs tabs angular-strap

我正在玩角带标签并遇到一个问题,如果我重新加载标签所基于的数据,那么没有任何标签实际打开。它只显示顶部标题,但没有任何数据。如果单击一个选项卡,它可以在实际打开的位置正常工作,但似乎无法自动执行。

我创建了一个显示此功能的plunkr,只需单击开关数据按钮:

plunker

这是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}}

1 个答案:

答案 0 :(得分:1)

两个问题:

1)您将$scope.tabs.activeTab分配给0,然后在下一行中立即覆盖它,方法是将标签分配给$scope.tabs = tabs2

的全新范围​​变量

2)由于浏览器事件的工作方式,指令绑定与您的活动标签分配无关。将其设置为超时0,​​这基本上是说“在下一个事件周期中执行此分配”可以解决您的问题。

Plunker

.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)
  };