В чем разница между ui-bootstrap-tpls.min.js и ui-bootstrap.min.js?

196

На странице Angular-UI-Bootstrap на cdnjs написано:

Родные AngularJS (Angular) директивы для начальной загрузки Twitter. Небольшая занимаемая площадь (5 кбайт!), Никаких сторонних зависимостей JavaScript (jQuery, Bootstrap JavaScript) не требуется!

... и имеет варианты для

//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.6.0/ui-bootstrap-tpls.min.js

и

//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.6.0/ui-bootstrap.min.js

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

Короче говоря, используйте tpls, если вы не собираетесь создавать собственные шаблоны.

Это задокументировано здесь: github.com/angular-ui/bootstrap/tree/gh-pages#build-files (также по ссылке с домашней страницы). Короче говоря, версия -tpls содержит шаблоны Bootstrap по умолчанию. В любом случае вы должны включить только один из перечисленных файлов. - Спасибо pkozlowski.opensource

Роберт Кристиан
источник
5
Это задокументировано здесь: github.com/angular-ui/bootstrap/tree/gh-pages#build-files (также по ссылке с домашней страницы). Короче говоря, версия -tpls имеет стандартные шаблоны BS в комплекте. В любом случае вы должны включить только один из перечисленных файлов.
pkozlowski.opensource
13
у первого нет рубашки.
25

Ответы:

198

Итак, ui-bootstrap-tpls.min.js == (ui-bootstrap.min.js + шаблоны HTML) требуется для кода JavaScript. Если вы включили только ui-bootstrap.min.js, вам также потребуется предоставить свои собственные шаблоны HTML.

В противном случае вы увидите что-то вроде:

GET http://localhost:8989/hello-world/template/tooltip/tooltip-popup.html 404 (Not Found) angular.js:7073
Error: [$compile:tpload] http://errors.angularjs.org/undefined/$compile/tpload?p0=template%2Ftooltip%2Ftooltip-popup.html
    at Error (<anonymous>)
    at http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:6:453
    at http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:54:14
    at http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:64:438
    at A (http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:89:258)
    at A (http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:89:258)
    at http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:90:465
    at g.$eval (http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:98:272)
    at g.$digest (http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:96:142)
    at g.$apply (http://localhost:8989/hello-world/js/vendor/angular-1.2.0-rc.3/angular.min.js:99:100)
Роберт Кристиан
источник
1
в чем здесь использование шаблонов HTML? Нужно ли это для создания нашего собственного макета?
перекати
1
@Sridhar Каждая директива требует немного html - большинство людей хотели бы использовать версию tpls. Вы хотели бы использовать версию, отличную от tpls, если у вас есть собственный способ обработки / доставки всех ваших паролей, и вы не хотите, чтобы они были включены в основную библиотеку.
Cyberwombat
1
поэтому в моем приложении у нас есть набор партиалов для каждой страницы. И у нас есть набор функций для них. Так что вы подразумеваете под директивой. Просьба разработать точное или реальное использование TPLS.
перекати
Я на самом деле хотел бы адаптировать некоторые шаблоны и не использовать версию TPLS. Как я мог сделать это легко?
Влад
3
Просто чтобы быть ясно: нет необходимости включать, ui-bootstrap.min.jsкогда вы уже включеныui-bootstrap-tpls.min.js
Тим Büthe
66

tplsТег означает , что файл содержит шаблоны.

Вот пример:

UI-bootstrap.js

angular.module("ui.bootstrap"
 ["ui.bootstrap.transition"
"ui.bootstrap.collapse"
"ui.bootstrap.accordion"
"ui.bootstrap.alert"
"ui.bootstrap.bindHtml"
"ui.bootstrap.buttons"
"ui.bootstrap.carousel"
"ui.bootstrap.position"
"ui.bootstrap.datepicker"
"ui.bootstrap.dropdownToggle"
"ui.bootstrap.modal"
"ui.bootstrap.pagination"
"ui.bootstrap.tooltip"
"ui.bootstrap.popover"
"ui.bootstrap.progressbar"
"ui.bootstrap.rating"
"ui.bootstrap.tabs"
"ui.bootstrap.timepicker"
"ui.bootstrap.typeahead"]);
angular.module('ui.bootstrap.transition'
 [])

UI-бутстраповские-tpls.js

angular.module("ui.bootstrap"
 ["ui.bootstrap.tpls"
 "ui.bootstrap.transition"
"ui.bootstrap.collapse"
"ui.bootstrap.accordion"
"ui.bootstrap.alert"
"ui.bootstrap.bindHtml"
"ui.bootstrap.buttons"
"ui.bootstrap.carousel"
"ui.bootstrap.position"
"ui.bootstrap.datepicker"
"ui.bootstrap.dropdownToggle"
"ui.bootstrap.modal"
"ui.bootstrap.pagination"
"ui.bootstrap.tooltip"
"ui.bootstrap.popover"
"ui.bootstrap.progressbar"
"ui.bootstrap.rating"
"ui.bootstrap.tabs"
"ui.bootstrap.timepicker"
"ui.bootstrap.typeahead"]);

angular.module("ui.bootstrap.tpls"
 ["template/accordion/accordion-group.html"
"template/accordion/accordion.html"
"template/alert/alert.html"
"template/carousel/carousel.html"
"template/carousel/slide.html"
"template/datepicker/datepicker.html"
"template/datepicker/popup.html"
"template/modal/backdrop.html"
"template/modal/window.html"
"template/pagination/pager.html"
"template/pagination/pagination.html"
"template/tooltip/tooltip-html-unsafe-popup.html"
"template/tooltip/tooltip-popup.html"
"template/popover/popover.html"
"template/progressbar/bar.html"
"template/progressbar/progress.html"
"template/rating/rating.html"
"template/tabs/tab.html"
"template/tabs/tabset-titles.html"
"template/tabs/tabset.html"
"template/timepicker/timepicker.html"
"template/typeahead/typeahead-match.html"
"template/typeahead/typeahead-popup.html"]);
angular.module('ui.bootstrap.transition'
 [])

Например: template / alert / alert.html

angular.module("template/alert/alert.html", []).run(["$templateCache", function($templateCache) {
  $templateCache.put("template/alert/alert.html",
    "<div class='alert' ng-class='type && \"alert-\" + type'>\n" +
    "    <button ng-show='closeable' type='button' class='close' ng-click='close()'>&times;</button>\n" +
    "    <div ng-transclude></div>\n" +
    "</div>\n" +
    "");
}]);
Максим Шустин
источник
2

Люди уже ответили на этот вопрос, но я хотел отметить, что начиная с версии 0.13.4, мы добавили возможность предоставлять свои собственные шаблоны в каждом конкретном случае (т. Е. Каждая директива используется, а не в масштабах всего приложения). Впрочем, последнее не составит труда сделать).

icfantv
источник