के दायरे से बाहर से एक AngularJS समारोह इस मामले से संबंधित सवालों का एक बहुत कॉलिंग मैंने देखा है, लेकिन कोई समाधान मैं कोशिश की है काम कर रहा है:एक कोणीय अनुप्रयोग
अंदर फ़ोल्डर सार्वजनिक मैं एक फ़ाइल बुलाया एप्लिकेशन है, .js जहां मैं इस तरह मेरी AngularJS आवेदन को परिभाषित:
angular.bootstrap(document.getElementById('body'), ["app"]);
फिर, एक ही फ़ोल्डर के अंदर और टी के अंदर:
var app = angular.module('app', []);
var RectangleDim=30;
app.controller('MainCtrl', function($scope, $http) {
और फ़ाइल के अंत में मैं जैसे बूटस्ट्रैप करना वह HTML AngularJS के आवेदन के लिए अपने प्रवेश बिंदु इस तरह है:
<div id="body">
<div ng-controller="MainCtrl">
<div class="col-sm-6 col-md-6 col-lg-6" style="background-color: #D2D7D3">
<div style="padding:25px;">
फिर, किसी अन्य फ़ोल्डर पर, मैं एक और जे एस फ़ाइल है, जहां मैं एक विशेष समारोह है कि AngularJS कोड में परिभाषित किया गया है कॉल करने के लिए की जरूरत है। फ़ंक्शन को Draw() कहा जाता है और जब मैं एंगुलरजेएस बटन पर क्लिक करता हूं तो यह ट्रिगर होता है।
बस मैं कुछ इस तरह कर रहा हूँ किसी भी बटन पर क्लिक के बिना किसी अन्य फाइल के अंदर फ़ंक्शन को कॉल करने के लिए:
var e = document.getElementById('body');
var scope = angular.element(e).scope();
// update the model with a wrap in $apply(fn) which will refresh the view for us
scope.$apply(function() {
scope.Draw(NumQuest);
});
//fim
संपादित करें: आदेश में मेरे सवाल का एक सा और अधिक स्पष्ट बनाने के लिए, मैं शायद एक जोड़ सकते हैं कुछ और विवरण:
मुझे केवल एक नियंत्रक और एक ही मॉड्यूल होना चाहिए जो मेरे पूरे एप्लिकेशन को नियंत्रित करता है क्योंकि सभी कार्यों की आवश्यकता होती है (जो एक एसवीजी तस्वीर अपडेट करने वाले 3 कार्यों को कॉल कर रहा है) अपेक्षाकृत आत्मनिर्भर हैं, इसलिए मैं नहीं हूं ' टी क्लाइंट-साइड कोड में जटिलता जोड़ने की कोई ज़रूरत नहीं है, जो केवल भ्रमित हो सकती है मैं और मेरे साथ काम करने वाले अन्य लोग।
याद करने के लिए मैं क्या जरूरत है:
एक ही ऐप्लिकेशन के अंदर, एक नियंत्रक के साथ, मैं एक समारोह है, ड्रा (someInputValue), कि एक एसवीजी आंकड़ा पैदा कर रहा है। इस फ़ंक्शन के लिए इनपुट टेक्स्ट इनपुट बॉक्स से प्राप्त किया जा रहा है।
दूसरी फ़ाइल पर मेरे पास जेएस क्रियाएं होती हैं जो कि जब मैं किसी अन्य टेक्स्ट बॉक्स पर क्लिक करता हूं (उदाहरण के लिए, एक अलर्ट दिखाएं या अतिरिक्त टेक्स्ट बॉक्स बनाएं)। मैं चाहता हूं कि जब मैं टेक्स्ट बॉक्स पर क्लिक करता हूं तो ड्रॉ (इनपुट) पर कॉल को जोड़ना है।
अर्थात्, मैं उस व्यवहार पर अनुकरण करना चाहता हूं जब मैं एक बटन पर क्लिक करता हूं जो टेक्स्ट बॉक्स से एक संख्या पढ़ता है और कुछ क्रिया करता है, लेकिन इसके बजाए, टेक्स्ट बॉक्स पर हाथ से इनपुट इनपुट करने और क्लिक करने के बजाय एक बटन पर, मैं बस एक टेक्स्ट बॉक्स पर क्लिक करना चाहता हूं और एक ही क्रिया करता हूं।
DOM तत्व के माध्यम से एक कोणीय गुंजाइश प्राप्त करने में कठिनाई का सहारा लेना रखना एक कोड गंध है कि आप शायद कोणीय ठीक से उपयोग नहीं कर रहे है । क्या इस वास्तुकला के लिए कोई विशिष्ट कारण है (यानी यह अन्य फ़ाइल एक कोणीय घटक क्यों नहीं है)? – doldt
एक टिप्पणी जोड़ना और @doldt को वोट देना। कोड गंध से अवगत होना अच्छा अभ्यास है। आम तौर पर जब हल करने के लिए कुछ वास्तव में बदसूरत होता है तो यह सामान्य डिजाइन सिद्धांतों के बाहर होता है और उस मार्ग को लेने के लिए बहुत सावधान रहना चाहिए। पर्याप्त टिप्पणी नहीं कर सकते हैं इसलिए अतिरिक्त टिप्पणी। इस विषय के भावी पाठकों के लिए, यह बताने की परवाह है कि आपको वास्तव में इसकी आवश्यकता क्यों है? कोई अन्य डिजाइन समाधान नहीं? – bastijn
कोणीय का उपयोग करके "कोणीय का उपयोग न करें" का उपयोग करके आप यहां क्या करने की कोशिश कर रहे हैं? – Claies