2013-06-06 9 views
7

मैं रेल में कोणीय ui बूटस्ट्रैप के कस्टम टेम्पलेट्स का उपयोग कैसे कर सकता हूं?रेल में 0 कोणीय ui बूटस्ट्रैप कस्टम टेम्पलेट्स

मेरा मतलब है, अगर मैं pagination का उपयोग करता हूं उदाहरण के लिए यह templates/pagination/pagination.html टेम्पलेट की तलाश करेगा।

समस्या यह है कि रेल उस पथ में टेम्पलेट्स की सेवा नहीं करेंगे, इसे <%= asset_path(....) %> सहायक का उपयोग करके वास्तव में assets/templates/pagination/pagination.html होना चाहिए।

कोणीय ui बूटस्ट्रैप जावास्क्रिप्ट फ़ाइल हैकिंग एक तरीका है, लेकिन मुझे हर बार जब मैं एक नया संस्करण प्राप्त करता हूं तो मुझे हैकिंग की तरह महसूस नहीं होता है।

उत्तर

5

मैं सुझाव दूंगा कि पुस्तकालय के साथ या अलग फ़ाइल के अंदर कस्टम टेम्पलेट्स को बंडल करना है। उपयोग करने की तकनीक अपने कस्टम टेम्पलेट्स की सामग्री के साथ $templateCache भरना है।

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

आप निर्माण प्रक्रिया के हिस्से के रूप $templateCache में टेम्पलेट्स बंडल या (स्वयं इस फाइल तैयार इस मामले आप की जरूरत में कर सकते हैं: देखने के लिए मैं क्या मतलब tamplates के साथ वितरित फ़ाइलों में से एक पर एक नज़र डालें जेएस तारों के रूप में टेम्पलेट्स लिखने के लिए)।

प्रत्येक निर्देश के लिए एक्सएचआर के माध्यम से व्यक्तिगत टेम्पलेट डाउनलोड करना अपमानजनक होगा क्योंकि इसके परिणामस्वरूप कई एक्सएचआर अनुरोध होंगे और आपके आवेदन को धीमा कर दिया जाएगा। साथ ही, यदि आप $templateCache में टेम्पलेट्स को प्रीलोड करते हैं तो आप आवश्यक पथ निर्दिष्ट कर सकते हैं, जिसे आपके WWW सर्वर पर मान्य पथ होने की आवश्यकता नहीं है।

+0

भयानक है, $ templateCache प्रलेखन नहीं है, लेकिन मैं पता लगा। यह जानना अच्छा है कि मैं 'नाम' प्रदान कर सकता हूं और यदि कुछ निर्देश उस नाम के साथ टेम्पलेट की तलाश में हैं, तो मैं जो भी चाहता हूं उसे प्रदान कर सकता हूं। मैं अपने प्रश्न को अपडेट करूँगा जो मैंने साझा करने के लिए सिर्फ समाप्त किया था :) –

0

मैं अपने जेएस libs का प्रबंधन करने के लिए बोवर का उपयोग करता हूं। इसलिए मैं अपने vendor/assets/javascripts/ फ़ोल्डर में इन फ़ाइलों है: angular-ui/bootstrap-bower

इन फ़ाइलों के साथ

, आप बस अपने जावास्क्रिप्ट मैनिफ़ेस्ट फ़ाइल में उन्हें आवश्यकता हो सकती है (आमतौर पर application.js)

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

और फिर तुम नहीं यदि आप डिफ़ॉल्ट अंतर्निहित टेम्पलेट का उपयोग करना चाहते हैं तो किसी भी टेम्पलेट को निर्दिष्ट करने की आवश्यकता है।

मैं निम्नलिखित यूआरएल रेफरी में इस समाधान खोजने: angular-ui-bootstrap-directive-template-missing

+0

धन्यवाद, लेकिन विचार मेरे अपने टेम्पलेट का उपयोग कर रहा था। वैसे भी, मैं कोणीय ऐप्स बनाने के लिए लाइनमैन के साथ समाप्त हुआ और फिर इसे एक रेल सार्वजनिक फ़ोल्डर में डंप कर दिया। –

संबंधित मुद्दे