2015-01-25 5 views
5

У меня есть 3 разных фрагмента кода, которые я хотел бы поменять в зависимости от выбора в меню выбора.Угловой JS-переключатель с ng-include?

Это работает, если включить встроенный код, но когда я пытаюсь использовать нг-включает в себя, как это, я получаю угловую ошибку и приложение не удается:

 <div ng-switch on="pFilter"> 
     <div ng-include="'includes/parcel_details_incoming.html'" ng-switch-when="Incoming Parcels"></div> 
     <div ng-include="'includes/parcel_details_forward.html'" ng-switch-when="Exception Parcels"></div> 
     <div ng-include="'includes/parcel_details_exception.html'" ng-switch-default></div> 
     </div> 

Что я здесь делаю неправильно? Включен ли ng-переключатель с ng-include?

ответ

7

Причина заключается в том, что директивы ng-include и ng-switch-x используют переход, и вы указываете оба на одном и том же элементе, и это запрещено. Переместите nginclude в дочерний элемент элемента ng-switch.

<div ng-switch on="pFilter"> 
     <div ng-switch-when="Incoming Parcels"><div ng-include="'includes/parcel_details_incoming.html'"></div></div> 
     <div ng-switch-when="Exception Parcels"><div ng-include="'includes/parcel_details_forward.html'"></div></div> 
     <div ng-switch-default><div ng-include="'includes/parcel_details_exception.html'"></div></div> 
    </div> 

Это используется работать до угловой версии 1.x, но соединение включения приведет к multidir ошибки при запуске версии 1.2.x угловых. Взгляните на change log и на этот commit.

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