Я получаю ошибку ниже, и я не понимаю, почему. Есть идеи?
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? это угловая ошибка?
Ошибка ясна. Существует два директивы для одного элемента, который пытается использовать переход:
1. ng-if 2. ng-include
Элемент может применять только одно исключение.
Чтобы исправить это, попробуйте это вместо этого:
<div data-my-form="" ng-if="isLoaded"> <div ng-include="'form.php'"> </div> </div>