Как установить активную на angularjs вкладку начальной загрузки со статическим контентом

Я использую Angular Bootstrap UI для отображения вкладки со статическим содержимым. Я включаю скрипт начальной загрузки ui-bootstrap-tpls-0.6.0.min.js.

вот моя разметка:

<tabset>
    <tab ng-show="$parent.hideme" ng-class="{active:$parent.hideme}">
        <tab-heading>
            tab1
        </tab-heading>
        <div>
            tab content 1
        </div>
    </tab>
    <tab ng-hide="$parent.hideme" ng-class="{active:!$parent.hideme}">
        <tab-heading>
            tab2
        </tab-heading>
        <div>
            tab content 2
        </div>
    </tab>
</tabset>

Вот контроллер

function myController($scope) {
    $scope.hideme = false;
});

Если на вкладке не применяется класс ng, он работает хорошо, за исключением того, что когда на 1-й вкладке скрыто и на 2-й вкладке отображается ($scope.hideme = false), содержимое 1-й вкладки будет отображаться как avtive.

Если я добавил ng-class, это вызвало ошибку в angularjs. Ошибка: [$parse: синтаксис] http://errors.angularjs.org/undefined/$ parse / syntax? P0=%7B&p1=is%20an%20 неожиданно%20token&p2=16&p3=%7Bactive%3Afalse%7D%20%7Bactive%3A%20active%2C%20disabled%3A%20disabled%7D& р4=%7Bactive%3A%20active%2C%20disabled%3A%20disabled%7D

Как правильно (или правильный синтаксис) сделать конкретную вкладку активной?

1 ответ

Я рекомендую не пытаться делать логику показа / скрытия. Я также был разочарован этим, потому что в документации по вкладке начальной загрузки пользовательского интерфейса показана только навигация к вкладкам, созданным связыванием с помощью ng-repeat.

Но я считаю, что вы можете ссылаться на вкладки в директиве tabset как $parentScope.tabs. Так что простая навигация возможна с помощью $parent.tabs[2].select():

<tabset>
  <tab heading="Tab 1">
    <button class="btn btn-success" ng-click="$parent.tabs[2].select()">Go to Tab 3</button>
  </tab>
  <tab heading="Tab 2">
    <p>Tab 2 contents</p>
  </tab>
  <tab heading="Tab 3">
    <button class="btn btn-danger" ng-click="$parent.tabs[0].select()">Back to Tab 1</button>
  </tab>
</tabset>

У меня есть пример работающего Плункера, если это поможет.

Другие вопросы по тегам