2013-06-06 4 views
7

Как я могу использовать пользовательские шаблоны углового ui-бутстрапа в рельсах?Угловые пользовательские шаблоны ust bootstrap в Rails

Я имею в виду, если я использую pagination, например, он будет искать шаблон templates/pagination/pagination.html.

Проблема в том, что рельсы не будут служить шаблонам в этом пути, на самом деле это должно быть assets/templates/pagination/pagination.html с помощью вспомогательного помощника <%= asset_path(....) %>.

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

ответ

5

Что я хотел бы предложить, это объединить пользовательские шаблоны с самой библиотекой или внутри отдельного файла. Используемый метод заключается в заполнении $templateCache содержимым ваших пользовательских шаблонов. Взгляните на один из файлов, распространяемых с tamplates, чтобы увидеть, что я имею в виду:

https://github.com/angular-ui/bootstrap/blob/gh-pages/ui-bootstrap-tpls-0.3.0.js#L2042

Вы можете связать шаблоны в $templateCache как часть процесса сборки или подготовить этот файл вручную (в этом случае вам нужно писать шаблоны как строки JS).

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

+0

Это является удивительным, $ templateCache не имеет документации, но я понял. Хорошо знать, что я могу предоставить «имя», и если какая-либо директива ищет шаблон с этим именем, я могу предоставить то, что хочу. Я обновлю свой вопрос тем, что я закончил, просто ради обмена :) –

0

Я использую беседу для управления моими js libs. Поэтому у меня есть эти файлы в моей vendor/assets/javascripts/ папке: angular-ui/bootstrap-bower

С этими файлами, вы можете просто требовать их в яваскрипта файле манифеста (обычно application.js)

//= require angular-bootstrap/ui-bootstrap 
//= require angular-bootstrap/ui-bootstrap-tpls 

, и тогда вы не необходимо указать любые шаблоны, если вы хотите использовать встроенные шаблоны по умолчанию.

Я считаю это решение в следующей ссылке Ref: angular-ui-bootstrap-directive-template-missing

+0

Спасибо, но идея заключалась в использовании моих собственных шаблонов. Во всяком случае, я закончил с lineman, чтобы создать угловые приложения, а затем сбросить его в общую папку rails. –

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