2012-07-08 14 views
5

मैं अपने पहले AngularJS प्रोजेक्ट पर काम कर रहा हूं। मुझे अब तक यह पसंद है, लेकिन अब मैं लटका हूं।एंगुलरजेएस में एक jQuery प्लगइन का उपयोग

मेरी प्रोजेक्ट संरचित है ताकि मुझे मेरे index.html में एक एकल एनजी-व्यू मिल गया हो जो वर्तमान रूट पर आधारित एक अलग HTML टेम्पलेट/आंशिक के साथ पॉप्युलेट हो।

partials मैं jQuery DateFormat plugin उपयोग करने के लिए एक SQLite datetime स्ट्रिंग है जिसमें कोणीय अभिव्यक्ति का उपयोग कर टेम्पलेट में पार्स किया गया है/आंशिक स्वरूपित करना चाहते हैं में से एक में:

{{ find.addDate }} 

मैं प्लगइन के साथ शामिल किया है index.html में एक स्क्रिप्ट टैग और मैंने सोचा कि उसे वहाँ से/मेरे टेम्पलेट में कुछ इस तरह कर रही है के रूप में सरल आंशिक होगा:

{{ $.format.date(find.addDate, "dd/MM/yyyy") }} 

या हो सकता है:

{{ angular.element.format.date(find.addDate, "dd/MM/yyyy") }} 

यह काम नहीं कर रहा है (मुझे यकीन है कि यह स्पष्ट है कि आप में से कुछ क्यों हैं), लेकिन कंसोल में कोई त्रुटि नहीं है और मैं इसे कैसे पहुंचा सकता हूं इस पर काफी स्टंप हूं। मैंने कुछ गुगलिंग जैसे 'कोणीय में तीसरे पक्ष की स्क्रिप्ट' या 'jquery प्लगइन angularjs' इत्यादि के साथ कुछ गुगल किया है, लेकिन इसे सही तरीके से पूरा करने के तरीके पर हाल के कोड उदाहरण नहीं मिल रहे हैं।

मुझे angular.widget का उपयोग करके कुछ पुराना कोड मिला, लेकिन ऐसा लगता है कि 1.0+ रिलीज़ में इसे हटा दिया गया है। मुझे लगता है कि मुझे निर्देश का उपयोग करने की ज़रूरत है, लेकिन मैं इसे बिल्कुल समझ नहीं सकता।

मैं वास्तव में एक स्पष्टीकरण या सरल उदाहरण की उम्मीद कर रहा हूं। आपका बहुत बहुत धन्यवाद!

उत्तर

10

समस्या तब होती है जब आप किसी टेम्पलेट में {{expression}} करते हैं, तो यह वर्तमान दायरे पर इसका मूल्यांकन करता है।

उदाहरण के लिए, अगर आप इस नियंत्रक है:

function MyCtrl($scope) { 
    $scope.find = { 
     addDate: 2030 
    }; 
} 

{{find.addDate}}$scope.find.addDate के लिए वास्तविकता नज़र में और होगा यह मूल्यांकन (2030 लौटने इस मामले में)।

तो जब आप {{ $.format.date(find.addDate, "dd/MM/yyyy") }} करने का प्रयास करते हैं, तो कोणीय $scope.$.format.date(find.addDate, "dd/MM/yyyy") के लिए दिखता है, जो मौजूद नहीं है। इस तरह

कोशिश कुछ बजाय, अपने नियंत्रक में एक समारोह का उपयोग कर:

function MyCtrl($scope) { 
     $scope.find = { 
      addDate: 2030 
     }; 
     $scope.formatDate = function(input, format) { 
      return $.format.date(input, format); 
     } 
    } 

और फिर आप अपने html आप कर सकते हैं में कर सकते हैं: {{formatDate(find.addDate, "dd/MM/yyyy")}}

आप भी अपने मार्कअप में एक फिल्टर के रूप में यह मूल्यांकन कर सकता है, यह सिर्फ एक इनपुट लेता है और यह परिवर्तन के बाद से: {{find.addDate | formatDate:"dd/MM/yyyy"}}

+0

मैं इस एक निश्चित रूप से अधिक-सोच रहा था। महान स्पष्टीकरण और सरल समाधान के लिए बहुत बहुत धन्यवाद! – Trae

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