0

Я пытаюсь добавить динамический шаблон и встретить проблему с transclude.Директива Angularjs с динамическим шаблоном и transclude

Это динамическая функция шаблона:

var getTemplate = function(contentType){ 
     var template = '<button style="cursor: pointer;">' + contentType + '<ng-transclude></ng-transclude></button>' 
     return template; 
    }; 

И это код для вызова динамического шаблона и обновления transclude:

element.html(getTemplate(attr.firstname)); 

transclude($scope.$parent, function (clone, $scope) { 
      element.children().append(clone); 
     }); 

Посмотрите на полный код здесь https://plnkr.co/edit/cQBeiDkEb8KwhrFWb8iR?p=preview

Посмотреть console Я вижу это уведомление: angular.js: 13920TypeError: transclude не является функцией

Результат должен быть включен: кнопка «Перейти».

Go код кнопки здесь:

<my-button firstname="John"><button style="cursor: pointer;"><i style="color: green;">Go</i></button></my-button> 

Пожалуйста, помогите мне исправить это.

Это документы я использовал: docs

Большое спасибо.

+0

включение изменилось несколько раз, так как эта статья была написана; Синтаксис с 2015 года не будет работать с более современными версиями Angular, и, скорее всего, логика не будет такой, какой вы ожидаете. Вам следует подумать над тем, что вы пытаетесь выполнить, и задать вопрос о том, как выполнить свою задачу, а не как решить ошибку из устаревшей статьи; Если, конечно, вы не используете * точно такую ​​же * версию угловатой, как в рассматриваемой статье, которая, вероятно, не является отличной идеей ... – Claies

ответ

2

В plunkr путь к угловому сценарию не найден. Изменение на <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script> и я вижу ошибку «angular.js: 13920TypeError: transclude не является функцией ...»

+1

вы проверили консоль ???? я тоже сталкиваюсь с этим, и я изменил это с моим cdn, тогда я получил правильный вывод, но в консоли я получил следующую ошибку: «Незаконное использование директивы ngTransclude в шаблоне! Нет родительской директивы, для которой требуется выключение. Элемент: " –

+0

Да, это ошибка , я обновил новый url для углового, но ng translude показывая ошибки. –

0

Я исправил эту проблему.

это новый пример кода: HTML код:

<div ng-controller="MyCtrl"> 
<my-directive title="nguyen hai dang"> 
<button>some button</button> 
<a href="#">and a link</a> 
</my-directive> 
</div> 

JS КОД:

var myApp = angular.module("myApp",[]); 

function MyCtrl($scope) { 
    $scope.log=[]; 
} 

myApp.directive("myDirective", function(){ 
    return{ 
    restrict: "E", 
    replace: true, 
     transclude: true, 
    scope: { 
      title: "@" 
      }, 
     template: "<div class=\"something\" ng-transclude>{{title}} </div>" 
    }; 
}); 

Проверить код здесь enter link description here

 Смежные вопросы

  • Нет связанных вопросов^_^