2

我正在尝试创建一个显示一些嵌入内容的模板。当我使用 ng-show 时一切正常,但使用 ng-if 或 ng-switch 会给我带来问题。我收到此错误消息:在模板中非法使用 ngTransclude 指令!没有找到需要嵌入的父指令

我了解 ng-switch 创建了一个新范围。但是嵌入应该仍然上升到父链。这是angularjs的缺陷吗?见http://jsfiddle.net/HgvP7/

这是我的 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';
      }
    };
  });
4

0 回答 0