Tuesday, 15 March 2011

angularjs - Do $http call after another $http call in other controller -


मैं $ http.get में Portraits नियंत्रक कैसे कॉल कर सकता हूं बस $ http.get में मेल नियंत्रक खत्म करने के बाद? मुझे दूसरों को कॉल करने के लिए idMatch की आवश्यकता है।

  var ऐप = कोणीय। मॉड्यूल ('रग्बी', ['ui.bootstrap']); Var idMatch = 0; App.controller ('match', ['$ http', '$ log', फ़ंक्शन ($ http, $ log) {var $ scope = this; $ http.get ('./ lib / data.php? Query = GetMatches ')। सफलता (कार्य (प्रतिक्रिया) {var lastMatch = response.length - 1; idMatch = प्रतिक्रिया [अंतिम मैच] .मैमचैप; $ scope.date = प्रतिक्रिया [अंतिम मैच] .डेट; $ scope.local = response [lastMatch] .local; $ scope.visitor = प्रतिक्रिया [अंतिम मैच]। विज़िटर;});}]);; App.controller ('पोर्ट्रेट्स', ['$ http', '$ log', फ़ंक्शन ($ http, $ लॉग) {var $ scope = this; this.players = []; // मुझे पहले idMatch की आवश्यकता है यह दो कॉल्स $ http.get ('./ lib / data.php? Query = getplayersInMatch और idMatch =' + idMatch) शुरू होता है। सफलता (फ़ंक्शन (प्रतिक्रिया) {$ scope.players = प्रतिक्रिया;}); $ http.get ('./lib/data.php?query=getPlayersOutMatch&idMatch=' + आईडीमैच)। सफलता (फ़ंक्शन (प्रतिक्रिया) {$ scope.notConfirmedPlayers = प्रतिक्रिया;});}]));  

मैं अभी इस समय दो दिन बर्बाद कर चुका हूं और यह बहुत आसान हो सकता है ...

अद्यतन करें: मेरा ऐप बस डेटा को पुनः प्राप्त करता है सभी मैचों से, पिछले एक के डेटा प्राप्त करें और उन टीमों को दिखाएं जो उसमें खेलते हैं और तिथि। उसके बाद यह हमारी टीम में सभी खिलाड़ियों को पुनः प्राप्त करना चाहिए जो इसे खेलेंगी और उनके चित्रों और नामों को दिखाएगा।

"post-text" itemprop = "text"> < P> अपने आवेदन की आवश्यकताओं को जानने के बिना हम केवल मान सकते हैं कि इन दो नियंत्रकों को अलग करने का आपके पास एक वैध कारण है।

यदि नियंत्रक भाई बहन हैं और कोई दायरा विरासत सम्बन्ध नहीं है, तो आपका एकमात्र विकल्प प्रसारण करना है $ रूट स्कोप के माध्यम से एक घटना हालांकि यह बुरा व्यवहार है और इसे टाला जाना चाहिए।

यदि उनके पास एक विरासत संबंध है तो बच्चा $ प्रसार (ऊपर की ओर) के बजाय $ प्रसारित करेगा

कृपया पढ़ें

< P>

$ rootScope.Scope

दायरा विरासत को समझने के लिए।

निम्न नमूना (मेरा नहीं), एक सरल, समझा जा सकता है उदाहरण।

  $ http.get ('./ lib / data.php? Query = getMatches')। सफलता (कार्य (प्रतिक्रिया) {var lastMatch = response.length - 1; idMatch = response [lastMatch] IdMatch; $ scope.date = प्रतिक्रिया [अंतिम मैच] .डेट; $ स्कोप.लोकल = प्रतिक्रिया [आखिरी मैच] .अलोकल; $ स्कोप। विज़िटर = प्रतिसाद [अंतिम मैच]। विज़िटर; $ रूटस्स्कोप। प्रसारण ('मैचियडेंट', 'आईडीमैच ': IdMatch});});  

तब आपके पोर्ट्रेट नियंत्रक को एक नया फ़ंक्शन की आवश्यकता होगी:

  $ rootScope। $ ("MyEvent", फ़ंक्शन (ईवेंट, डेटा) {$ http .get ('./ lib / data.php? Query = getPlayersInMatch और idMatch =' + data.idMatch)। सफलता (फ़ंक्शन (प्रतिक्रिया) {$ scope.players = प्रतिक्रिया;}); $ http.get ('./ Lib / data.php? Query = getPlayersOutMatch और idMatch = '+ data.idMatch)। सफलता (फ़ंक्शन (प्रतिक्रिया) {$ scope.notConfirmedPlayers = प्रतिक्रिया;})}};  

दोनों नियंत्रकों को रूट इंजेक्शन रूट की आवश्यकता है।


No comments:

Post a Comment