2014-06-10 15 views
19

नहीं कहा जा रहा है, मैं कोणीय में एक डी 3 निर्देश को लागू करने की कोशिश कर रहा हूं, और यह मुश्किल है क्योंकि दृश्यमान कुछ भी नहीं हो रहा है, और कंसोल पर कोई त्रुटि नहीं डाली जा रही है।AngularJS निर्देश को

यहाँ मेरी d3 निर्देश दिया गया है:

myApp.directive('d3-bars', ['d3Service', function($window, d3Service) { 
    return { 
    restrict: 'EA', 
    scope: {}, 
    link: function(scope, element, attrs) { 

// More code below .... 

यहाँ मेरी HTML है: मैंने सोचा कि यह एक svg जोड़कर नहीं किया गया था, क्योंकि तत्व यह है कि क्या यह की तरह लग रहा निरीक्षण सबसे पहले

<d3-bars bar-height="20" bar-padding="5"></d3-bars> 

, लेकिन अब मुझे नहीं लगता कि निर्देश भी चल रहा है। मैंने बहुत शुरुआत में console.log फंस लिया और यह भी दिखाई नहीं दिया। क्या मुझे कुछ आसान याद आ रही है?

संपादित करें:

मैं

angular.module('myApp.directives', ['d3']) 
.directive('d3-bars', ['d3Service', function($window, d3Service) { 

को शीर्ष पंक्ति को बदलने की कोशिश की लेकिन है कि या तो काम नहीं किया। मुझे यह भी नहीं पता कि दोनों शीर्षकों के बीच क्या अंतर है ...

+1

क्या यह आपको एक त्रुटि दे रहा है, क्योंकि अगर आप केवल '' $ विंडो ',' d3Service ', फ़ंक्शन ($ विंडो) इंजेक्ट करने के विरोध में निर्भरता इंजेक्शन की सरणी में' d3Service 'इंजेक्शन कर रहे हैं, तो मुझे एक त्रुटि की उम्मीद होगी। , डी 3 सेवा) {// कोड आदि}] – JoshSGman

+0

^^ बिल्कुल सही। आपका उत्तर प्लस एंजिमा ने बहुत अच्छा काम किया है। –

उत्तर

49

आपका निर्देश नाम गलत हो सकता है। कोणीय निर्देश आमतौर पर ऊंट-आधारित होते हैं। और जब एचटीएमएल में वे अतिसंवेदनशील होते हैं। इसलिए ngClass एचटीएमएल में ng-class में बदल जाता है।

कम से कम जब मैंने - या मेरे निर्देशों के अन्य पात्रों का उपयोग करने का प्रयास किया है तो यह काम नहीं किया है।

कुछ वैधता के लिए इस Google समूह पोस्ट देखें: using dash in directive

इसके अलावा यहाँ डॉक्स हैं: Directives - matching directives

तुम भी परिवर्तन यह है कि टिप्पणी में JoshSGman द्वारा सुझाव दिया गया था सुनिश्चित करना होगा:

.directive('d3Bars',['$window', 'd3Service', function($window, d3Service) { 
+2

ओह ... अब मुझे "लिंक पर अपरिभाषित संपत्ति 'डी 3' नहीं मिल सकता है"। एक त्रुटि ... वू! –

+0

आपको शायद उस परिवर्तन को भी करने की आवश्यकता होगी जो @JoshSGman ने भी सुझाव दिया था। – EnigmaRM

+1

यदि आप @ JoshSGman की टिप्पणी के लिए अपना उत्तर संपादित करते हैं, तो मैं इसे सही उत्तर के रूप में चुनूंगा। –

10

आपके निर्देश का नामकरण समस्या है। कोणीय जावास्क्रिप्ट में नाम से मेल खाने से पहले एचटीएमएल में निर्देशों के नामों को सामान्य करता है। सामान्यीकरण प्रक्रिया दो चरणों में काम करती है:

  1. स्ट्रिप एक्स- और डेटा- तत्व/विशेषताओं के सामने से।
  2. कॉलन-, हाइफ़न-, या अंडरस्कोर-सीमांकित नाम को camelCase में कनवर्ट करें।

तो, जावास्क्रिप्ट में आपके निर्देश के लिए सही नाम d3Bars होगा। इसे उसमें बदलें और इसे काम करना चाहिए।

अधिक जानकारी के लिए https://docs.angularjs.org/guide/directive#matching-directives देखें।

0

जब मैं link संपत्ति को परिभाषित करना भूल गया था तो मेरे समान व्यवहार था।

कंसोल में कोई त्रुटि नहीं, नोटिन।

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