Angularjs 在指令中使用ng开关和transclude

Angularjs 在指令中使用ng开关和transclude,angularjs,Angularjs,我正在尝试创建一个显示一些转置内容的模板。当我使用ng show时,一切正常,但使用ng if或ng开关会给我带来问题。我得到这个错误消息:在模板中非法使用ngTransclude指令!找不到需要转换的父指令 我知道ng switch创建了一个新的作用域。但是,转移仍然应该向上延伸到父链。这是angularjs的缺陷吗?看 以下是我的html,根据文档示例进行了修改: 看来不止你一个人有这样的问题。真的,我不能让它工作。看起来它真的找不到达到指令的方法。可能是重复的 <div ng-ap

我正在尝试创建一个显示一些转置内容的模板。当我使用ng show时,一切正常,但使用ng if或ng开关会给我带来问题。我得到这个错误消息:在模板中非法使用ngTransclude指令!找不到需要转换的父指令

我知道ng switch创建了一个新的作用域。但是,转移仍然应该向上延伸到父链。这是angularjs的缺陷吗?看

以下是我的html,根据文档示例进行了修改:


看来不止你一个人有这样的问题。真的,我不能让它工作。看起来它真的找不到达到指令的方法。可能是重复的
<div ng-app="docsTransclusionExample">
  <div ng-controller="Ctrl">
    <my-dialog>Check out the contents, {{name}}!</my-dialog>
  </div>


  <!-- my-dialog.html -->
  <script type="text/ng-template" id="my-dialog.html">
    <div ng-switch="1+1">
        <div ng-switch-when="2">
            <div ng-transclude></div>
        </div>
    </div>
  </script>
</div>
angular.module('docsTransclusionExample', [])
  .controller('Ctrl', function($scope) {
    $scope.name = 'Tobias';
  })
  .directive('myDialog', function() {
    return {
      restrict: 'E',
      transclude: true,
      scope: {},
      templateUrl: 'my-dialog.html',
      link: function (scope, element) {
        scope.name = 'Jeff';
      }
    };
  });