javascript — угловая директива — запрашивает включение?

Я получаю сообщение об ошибке ниже, и я не понимаю, почему. Есть идеи?

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? это угловой баг?

3

Решение

Ошибка понятна. Есть две директивы для одного и того же элемента, который пытается использовать transclusion:

1. ng-if
2. ng-include

Элемент может применять только одно включение.

Чтобы исправить, попробуйте это вместо:

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

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]