Angular指令 - 要求跨越?

问题描述:

我在下面看到一个错误,我不明白为什么。有任何想法吗?Angular指令 - 要求跨越?

HTML,

<button ng-click="loadForm()">Load Directive Form</button> 
<div data-my-form></div> 

角,

app.directive('myForm', function() { 
     return { 
      replace:true, 
      controller:function($scope){ 
      $scope.isLoaded = false; 
      $scope.loadForm = function(){ 
       $scope.isLoaded = true; 
      } 
      }, 
      template: '<div ng-if="isLoaded" ng-include="\'form.php\'" ></div>', 
      link:function(scope, element) { 

      } 
     } 
    }); 

误差,

Error: [$compile:multidir] Multiple directives [ngInclude, ngInclude] asking for transclusion on: <div data-my-form="" ng-if="isLoaded" ng-include="'form.php'"> 

一个解决方法,

'<div><div ng-if="isLoaded" ng-include="\'form.php\'" ></div></div>' 

但为什么我必须换行它在一个div?它是一个有角度的错误?

+2

取代已过时 – 2014-12-13 06:51:47

错误很明显。在试图使用包含的相同元素上有两条指令:

1. ng-if 
2. ng-include 

元素只能应用一个包含。

要解决,试试这个来代替:

<div data-my-form="" ng-if="isLoaded"> 
    <div ng-include="'form.php'"> </div> 
</div>