Подтвердить что ты не робот

Angular шаблон шаблона ui bootstrap отсутствует

В настоящее время я тестирую angular bootstrap-UI локально на своей машине. Когда я пытаюсь воссоздать пример аккордеона и диалогового окна. Я получаю это сообщение об ошибке в моей консоли, говоря, что шаблон отсутствует.

Пример ошибки:     404 Не найдено - localhost/ angular/template/message.html

Когда я смотрю в ui-bootstrap-0.1.0.js, директива имеет шаблон URL.

Какова цель templateURL для директивы?

Являются ли эти шаблоны включенными при загрузке всего файла angular bootstrap-UI zip?

Мне не хватает других файлов, которые я должен включить в свой заголовок?

<link rel="stylesheet" href="includes/css/bootstrap.css">
<script src="includes/js/angular.js"></script>
<script src="includes/js/ui-bootstrap-0.1.0.js"></script>
4b9b3361

Ответ 1

У вас есть два варианта:

  • Если вы не хотите создавать свои собственные шаблоны и хотите встроенные, вы должны загрузить файл ui-bootstrap-tpls-0.1.0.js - это вводит все шаблоны, чтобы они были предварительно кэшированы в ваше приложение: https://github.com/angular-ui/bootstrap/blob/gh-pages/ui-bootstrap-tpls-0.1.0.js#L1322

  • Если вы хотите создать некоторые из ваших собственных шаблонов, создайте в своем приложении папку templates и загрузите шаблоны из проекта angular -ui/bootstrap. Затем перезапишите те, которые вы хотите настроить самостоятельно.

Подробнее здесь: https://github.com/angular-ui/bootstrap/tree/gh-pages#build-files

изменить

Вы также можете загрузить bootstrap-tpls.js и по-прежнему перезаписать некоторые из директивных шаблонов с вашими собственными, используя декодер AngularJS для изменения директивы templateUrl. Вот пример, который изменил шаблон datepickerUrl:

http://docs.angularjs.org/api/AUTO.$provide#methods_decorator

myApp.config(function($provide) {
  $provide.decorator('datepickerDirective', function($delegate) {
    //we now get an array of all the datepickerDirectives, 
    //and use the first one
    $delegate[0].templateUrl = 'my/template/url.html';
    return $delegate;
  });
});

Ответ 2

Мои 5 центов после потери 2 часа с этой проблемой. Вы должны:

  • Перейдите в http://angular-ui.github.io/bootstrap/. Нажмите на создание пользовательской сборки и выберите функции, которые вы используете. (Нет смысла тянуть 60k за 1 элемент).
  • Включить custom.tpls.js, в моем случае это было ui-bootstrap-custom-0.10.0.min.js
  • В вашем модуле Angular include 'ui.bootstrap.yourfeature' в моем случае это было 'ui.bootstrap.modal'
  • , а также 'ui.bootstrap.tpls'. Таким образом, мои модульные настройки выглядят следующим образом:

    var profile = angular.module("profile",[ 'ui.bootstrap.modal', 'ui.bootstrap.tpls' ]);

  • Сэкономьте 2 часа и будьте счастливы:-).

Ответ 3

Это сообщение об ошибке также появляется в другом сценарии, как показано здесь: http://plnkr.co/edit/aix6PZ?p=preview

Если вы заявляете, что ваша зависимость модуля является только "ui.bootstrap.dialog", а не "ui.bootstrap", angular кашляет шаблон, не найденный.

Вот официальное объяснение "почему": https://github.com/angular-ui/bootstrap/issues/266

Ответ 4

Я столкнулся с той же ошибкой, хотя в моем index.html были определены оба обязательных скрипта. Наконец, я изменил порядок загрузки, установив сначала ui-bootstrap.js script и ui-bootstrap-tpls.js после этого. Это поставило проблему. Однако позже я заметил (как было сказано выше), что требуется только одна lib. Поэтому я удалил ui-bootstrap.js.

Ответ 5

Моя проблема заключалась в том, что я все еще включал шаблон-url в HTML, например:

<div uib-accordion-group class="panel-default" heading="Custom template" template-url="group-template.html">

Это заставило мой браузер висеть - что странно, но так оно и было.

Итак, что я сделал:

bower install bootstrap --save
bower install angular-bootstrap --save

В моем index.html(обратите внимание на "-tpls" ):

<script src="bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script>

Затем в моем Angular приложении:

angular
  .module('myApp', ['ui.bootstrap'])

Затем просто удалите шаблон-url в HTML:

<div uib-accordion-group class="panel-default" heading="Custom template">

Бум, работает.

Ответ 6

Вероятная причина этой проблемы - это принятый ответ, но одна из возможных причин этой проблемы - это то, с чем я столкнулся, и я хотел опубликовать ее, если кто-то другой столкнулся с одной и той же вторичной причиной проблемы.

Симптомы были точно такими же, 404 на шаблонах бутстрапа, но в моем случае я фактически включил javascript файл ui-bootstrap-tpls.min.js. Проблема в том, что я также включил версию без шаблона, "ui-bootstrap.min.js". Как только оба были включены, и я подозреваю, что порядок важен, можно сместить другое. В моем случае версия без шаблонов вытеснила шаблонную версию, вызывающую проблемы 404.

Как только я убедился, что ТОЛЬКО ВКЛЮЧАЕТ "ui-bootstrap-tpls.min.js", все работало, как ожидалось.

Ответ 7

Я должен сказать, что читаю комментарии и добавляю свой опыт с 10 часов прошлой ночью. Избегайте UI Bootstrap, кажется, гораздо больше усилий, чем его ценность.

Кроме того, прочитав свои репо-вопросы и комментарии, вся манера, в которой проект был проведен, по-видимому, противоречит простому и удобному в использовании инструменту. Хотя я уверен, что это началось с лучших намерений, возможно, это модуль, который можно избежать, если это вообще возможно.

Конечно, есть предостережение, это мнение, возможно, мы узнаем, что другие чувствуют то же самое.