Qual é a diferença entre ui-bootstrap-tpls.min.js e ui-bootstrap.min.js?

196

Na página Angular-UI-Bootstrap em cdnjs, diz:

Diretivas nativas do AngularJS (Angular) para o Bootstrap do Twitter. Tamanho reduzido (5 kB compactado!), Sem dependência de JavaScript de terceiros (jQuery, Bootstrap JavaScript)!

... e tem opções para

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

e

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

Diferenciar isso mostra uma diferença sutil, e não consigo encontrar nenhuma documentação sobre ele ...

Para encurtar a história, use tpls, a menos que você queira criar modelos personalizados.

Está documentado aqui: github.com/angular-ui/bootstrap/tree/gh-pages#build-files (vinculado também na página inicial). Em resumo, a versão -tpls possui modelos padrão do Bootstrap empacotados. De qualquer forma, você deve incluir apenas um dos arquivos listados. - Obrigado pkozlowski.opensource

Robert Christian
fonte
5
Está documentado aqui: github.com/angular-ui/bootstrap/tree/gh-pages#build-files (vinculado também na página inicial). Em resumo, a versão -tpls possui modelos padrão de BS agrupados. De qualquer forma, você deve incluir apenas um dos arquivos listados.
pkozlowski.opensource
13
o primeiro não tem camisa.
tintyethan

Respostas:

198

Portanto, ui-bootstrap-tpls.min.js == (ui-bootstrap.min.js + modelos HTML) exigidos pelo código JavaScript. Se você incluiu apenas ui-bootstrap.min.js, também precisará fornecer seus próprios modelos HTML.

Caso contrário, você verá algo como:

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)
Robert Christian
fonte
1
qual é o uso de modelos html aqui? Precisamos criar nosso próprio layout?
rolling stone
1
@Sridhar Cada diretiva requer um pouco de html - a maioria das pessoas gostaria de usar a versão tpls. Você gostaria de usar a versão não tpls se tiver uma maneira personalizada de manipular / entregar todas as suas parciais e não desejar que elas sejam incluídas na biblioteca principal.
22418 cyberwombat
1
então, no meu aplicativo, temos um conjunto de parciais para cada página. E temos um conjunto de funcionalidades para eles. Então, o que você quer dizer com diretiva. Pls elabora o uso exato ou real de tpls.
rolling stone
Na verdade, eu gostaria de adaptar alguns modelos e não usar a versão tpls. Como eu poderia fazer isso facilmente?
7743 Vlad
3
Só para ficar claro: não há necessidade de incluir ui-bootstrap.min.jsquando você já incluídoui-bootstrap-tpls.min.js
Tim Buthe
66

A tplstag significa que o arquivo também contém modelos.

Aqui está um exemplo:

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-bootstrap-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'
 [])

Por exemplo: 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" +
    "");
}]);
Maxim Shoustin
fonte
2

As pessoas já responderam a essa pergunta, mas eu gostaria de salientar que, a partir do release 0.13.4, adicionamos a capacidade de fornecer seus próprios modelos caso a caso (ou seja, cada uso de diretiva, e não todo o aplicativo , porém, o último não seria difícil de fazer).

icfantv
fonte