Angular 带有 ng-include 的 JS ng-switch?

Angular JS ng-switch with ng-include?

我有 3 个不同的代码片段,我想根据 select 菜单中的 selection 进行交换。

如果我包含内联代码,它会工作,但是当我尝试像这样使用 ng-includes 时,我收到 Angular 错误并且应用程序失败:

      <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-switch 不能与 ng-includes 一起使用吗?

原因是指令 ng-includeng-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>

这在 angular 1.x 版本之前一直有效,但复合嵌入将导致 multidir 错误开始 1.2.x 版本 angular。看看 change log and this commit.