2015-01-15 3 views
2

вот моя проблема: (Пожалуйста, несите меня, если это легко/глупо вопрос, я новичок в Angular :)) Я загружаю страницу с угловым, где у меня есть 3 вкладки (и т. Д. 3), которые используют вкладки. Итак, когда я приземляюсь на свою страницу, генерируются все три вкладки и содержимое.AngularJs - как отключить просмотр/шаблон

Проблема заключается в том, что когда я нажимаю на другую вкладку, ссылка соответствует маршруту, и я думаю, вернусь к контроллеру и снова сделаю вид.

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

Как уже говорилось, я вроде нового на угловой, так что если вы думаете, что я должен делать что-то по-другому, любые комментарии приветствуются :)

Вот мое мнение:

<div class="bs-example bs-example-tabs"> 
    <ul role="tablist" class="nav nav-tabs"> 
    <li role="presentation" class="active"> 
     <a role="tab" data-toggle="tab" href="#tab1">tab1</a> 
    </li> 
    <li class="" role="presentation"> 
     <a role="tab" data-toggle="tab" href="#tab2">tab2</a> 
    </li> 
    <li class="" role="presentation"> 
     <a role="tab" data-toggle="tab" href="#tab3">tab3</a> 
    </li> 
    </ul> 
</div> 

<div class="tab-content"> 
    <div id="tab1" class="tab-pane fade active in" role="tabpanel"> 
    <div ng-include src="'/path/includes/tab1.htm'"></div> 
    </div> 

    <div id="tab2" class="tab-pane fade" role="tabpanel"> 
    <div ng-include src="'/path/includes/tab2.htm'"></div> 
    </div> 

    <div id="tab3" class="tab-pane fade" role="tabpanel"> 
    <div ng-include src="'/path/includes/tab3.htm'"></div> 
    </div> 
</div> 

И вот где я улавлю маршрут в контроллере:

.when('/url/:intUserId?', { 
    controller:'ViewApiCtrl', 
    templateUrl: '/path/view-api.htm', 
}) 

Сообщите мне, если мне нужно разместить дополнительную информацию о моем коде!

Большое спасибо

EDIT В принципе я не хочу возвращать только содержимое только одной вкладки, или просто отобразить одну вкладку в то время. Для этого примера мои 3 вкладки - одна большая форма, с некоторыми входами на 3 разных вкладках. Таким образом, на какой вкладке пользователь не имеет значения, он может изменить поле на одном, переключить вкладку, нажать на сохранение на второй вкладке и сохранить всю форму. То, что я ищу, это что-то вроде того, когда я переключаю вкладку, позволяю бутстрапу обрабатывать отображение, и я хочу, чтобы Angular не делал ничего (так что если он идет к контроллеру, немедленно выйдите из него и не вынимайте/перезагружайте шаблон) ,

Спасибо Мишель за советы, я думаю, что это будет полезно на моих других страницах с вкладками, которые на самом деле не связаны друг с другом (я могу загрузить один без других), но для этого конкретного случая я не думаю, что это меня устраивает :(

на php с помощью Zend Framework, я использовал, чтобы сделать это таким образом, если это помогает:

Zend_Layout :: getMvcInstance() -> disableLayout(); $ this-> _helper-> viewRenderer-> setNoRender (true);

+1

Вы можете попытаться использовать директиву 'ng-if', чтобы не отображать вкладку, когда условие не выполняется. –

+0

Спасибо за предложение, но мне нужно загрузить 3 вкладки одновременно (при первой загрузке страницы), а затем просто отобразить активное содержимое/скрыть другие вкладки (сделанные y bootstrap).«Ng-if» будет просто отображать одну вкладку за раз, что не совсем то, что я ищу :( – mokk

+0

Затем, принимая во внимание, что вы хотите просто отображать условно, вы можете использовать 'ng-hide' или 'ng-show', которые также принимают выражения –

ответ

0

Хорошо, поэтому с вашим последним правлением с помощью бутстрапа вы можете сделать that, а также с угловым ui as well!

Просто поместите свои вкладки в форму и при отправке всех представленных данных также!

+0

К сожалению, это решение уже есть то, что я есть но это не решает мою проблему. Когда я нажимаю на новую вкладку, она все еще восстанавливает представление, чего я не ожидаю :( – mokk

Смежные вопросы