2013-06-06 26 views
7

Làm cách nào tôi có thể sử dụng các mẫu tùy chỉnh của bootstrap ui góc trong đường ray?Các mẫu tùy chỉnh ui bootstrap góc trong Rails

Ý tôi là, nếu tôi sử dụng pagination, ví dụ: nó sẽ tìm mẫu templates/pagination/pagination.html.

Vấn đề là đường ray sẽ không phân phối mẫu trong đường dẫn đó, nó thực sự cần phải là assets/templates/pagination/pagination.html bằng cách sử dụng trình trợ giúp <%= asset_path(....) %>.

Hacking tệp ui bootstrap angular góc cạnh là một cách, nhưng tôi không cảm thấy như hack nó mỗi khi tôi nhận được một phiên bản mới.

Trả lời

5

Tôi khuyên bạn nên nhóm các mẫu tùy chỉnh với chính thư viện hoặc bên trong một tệp riêng biệt. Kỹ thuật sử dụng là điền vào $templateCache với nội dung của các mẫu tùy chỉnh của bạn. Có một cái nhìn tại một trong các tập tin phân phối với tamplates để xem những gì tôi muốn nói:

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

Bạn có thể bó mẫu vào $templateCache như là một phần của quá trình xây dựng hoặc chuẩn bị tập tin này bằng tay (trong trường hợp này bạn cần để viết mẫu dưới dạng chuỗi JS).

Tải xuống các mẫu riêng lẻ qua XHR cho mỗi và mọi chỉ thị sẽ lãng phí vì nó sẽ dẫn đến nhiều yêu cầu XHR và sẽ làm chậm ứng dụng của bạn. Ngoài ra, nếu bạn tải trước mẫu vào $templateCache, bạn có thể chỉ định đường dẫn bắt buộc, đường dẫn không cần phải là đường dẫn hợp lệ trên máy chủ WWW của bạn.

+0

Đó là tuyệt vời, $ templateCache không có tài liệu hướng dẫn nhưng tôi đã tìm ra. Thật tốt khi biết rằng tôi có thể cung cấp một 'tên' và nếu một số chỉ thị tìm kiếm một mẫu có tên đó, tôi có thể cung cấp những gì tôi muốn. Tôi sẽ cập nhật câu hỏi của mình với những gì tôi đã kết thúc chỉ vì mục đích chia sẻ :) –

0

Tôi sử dụng bower để quản lý lib của tôi. Do đó tôi có những tập tin trong thư mục vendor/assets/javascripts/ tôi: angular-ui/bootstrap-bower

Với những tập tin này, bạn chỉ có thể yêu cầu họ trong javascript file manifest của bạn (thường là application.js)

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

và sau đó bạn không cần chỉ định bất kỳ mẫu nào nếu bạn muốn sử dụng các mẫu dựng sẵn mặc định.

Tôi thấy giải pháp này trong url Ref sau: angular-ui-bootstrap-directive-template-missing

+0

Cảm ơn, nhưng ý tưởng đã sử dụng các mẫu của riêng tôi. Dù sao, tôi đã kết thúc với lineman để tạo ra các ứng dụng góc cạnh và sau đó đổ nó vào một thư mục công cộng đường ray. –

Các vấn đề liên quan