Функция шаблона AngularJS в директиве, выдающая ошибку "Шаблон для директивы должен иметь ровно один корневой элемент"

Я работаю над угловым приложением. для определенной директивы я использую функцию шаблона следующим образом:

template: function(element, attr) {
              return '<div class="myClass">/..some HTML here../</div>'
          }

Однако, когда я запускаю свой код, я получаю следующую ошибку:

Ошибка: шаблон для директивы должен иметь ровно один корневой элемент, был функцией (element, attr) { ... определение функции здесь идет}

Если я поменяю его на обычную пару ключ-значение следующим образом, он будет работать нормально.

template: '<div class="myClass">/..some HTML here../</div>'

Я не понимаю, что здесь не так. Функции линковки и компиляции работают просто отлично. Любая помощь в этом была бы очень признательна. заранее спасибо

1 ответ

Решение

Эта функция была введена в более поздней версии Angular 1.1.4. Вам придется обновить или найти обходной путь, как упомянуто @saiyan.

Проверьте этот plunkr - http://plnkr.co/edit/QVdE3xdn3hmcoQ33gj2R?p=preview

HTML:

<!DOCTYPE html>
<html ng-app="myapp">

   <head>

    <!-- CHANGE THE ANGULAR VERSION HERE  -->
    <script src="https://code.angularjs.org/1.0.4/angular.js"></script>

    <script src="app.js"></script>
  </head> 

  <body >
    <div something></div>
  </body>

</html>

JS:

var app = angular.module('myapp', []);

app
    .directive("something", function () {
        return {
            template: function () {
                return "Hello World!";
            }
        }
    })
Другие вопросы по тегам