2013-02-15 4 views
11

Я использую вкладки в угловом-интерфейсе с помощью этого контроллера:углового пользовательский интерфейс вкладки Загрузка шаблона в закладке-контенте

$scope.panes = [ 
    { title:"Home",  content:"home" , active: true}, 
    { title:"Settings", content:"settings"}, 
    { title:"View",  content:"view"} 
]; 

и это в HTML файл:

<tabs> 
    <pane 
     active="pane.active" 
     heading="{{pane.title}}" 
     ng-repeat="pane in panes" 
    > 
     {{pane.content}} 
    </pane> 
    </tabs> 

, но я хотите установить контент как шаблон, как я могу это сделать, я попытался установить код ng-include в этом plunker, но не работал.
Спасибо заранее.

обновление:

, если вы найдете это решение и you'r не используя угловую-самозагрузки v0.12 вам необходимо обновить код the new syntax of v0.13 так:

<tabset> 
    <tab 
     active="pane.active" 
     heading="{{pane.title}}" 
     ng-repeat="pane in panes" 
    > 
     <div ng-include="pane.content"></div> 
    </tab> 
    </tabset> 

Я уже обновил plunker иметь синтаксис углового бутстрапа v0.13.

ответ

25

Просто добавьте нг-включает как ребенок панели

<tabs> 
    <pane active="pane.active" 
      heading="{{pane.title}}" 
      ng-repeat="pane in panes"> 
     <div ng-include="pane.content"></div> 
    </pane> 
</tabs> 

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

Это происходит потому, что значение приоритета нг-включают является 0 (по умолчанию), в то время как приоритет нг-повтора в 1000 и поэтому порядок выполнения:

  1. нг-включают
  2. нг-повторить

Посмотреть directive docs

+0

Спасибо, что работали, но не могли бы вы объяснить, почему это работает так, как не Я написал его в первый раз или просто указал мне, где я могу его найти. –

+1

См. Мой обновленный ответ –

+0

Это достаточно ясно, спасибо. –