javascript - Issue in a declared factory: AngularJs -
var ऐप = कोणीय। मॉड्यूल ('ऐप', []); // html में, निम्न 2 फ़ाइलें संलग्न हैं। // & lt; script src = "lib / sockjs-0.3.4.min.js" & gt; & lt; / स्क्रिप्ट & gt; // & lt; script src = "lib / vertxbus.min.js" & gt; & lt; / स्क्रिप्ट & gt; App.factory ('serverData', फ़ंक्शन () {var eb = new vertx.EventBus ('http://xxx.xxx.xxx.xxx'); var x = {}; eb.send ("com.find। Web.ed ", {" Em ": 'user@find.com'," Pw ": '123'}, फ़ंक्शन (उत्तर) {x = उत्तर;}); var तथ्य = {}; fact.getData = function () {वापसी x;}; वापसी तथ्य;}); App.controller ('मुख्य नियंत्रक', फ़ंक्शन ($ दायरा, सर्वरडेटा) {}); उपरोक्त कोड में, मैं किसी शीर्ष सर्वर से डेटा प्राप्त करने के लिए एक फैक्टरी घोषित करने की कोशिश कर रहा हूं। यह काम नहीं कर रहा है, कोई एक मदद कर सकता है।?
यह एक नियंत्रक में उपयोग किया जाता है जब यह अच्छी तरह से काम कर रहा है कोड देखें।
var ऐप = कोणीय। मॉड्यूल ('ऐप', []); App.controller ('mainController', फ़ंक्शन ($ दायरा, $ लॉग) {$ rootScope.user = {उपयोगकर्ता: 'user @ find.com', पासवर्ड: '123'}; $ rootScope.reply = {}; $ दायरा .eb = नया vertx.EventBus ('http://100.100.100.100:8000'); $ scope.loginFunction = function () {$ scope.eb.send ("com.find.web.ed", {"Em ": $ Scope.user.user," Pw ": $ scope.user.password}, फ़ंक्शन (उत्तर) {$ rootScope.reply = उत्तर; $ log.warn ($ rootScope.reply);});}}) ;
आपका फ़ैक्टरी कोड केवल एक बार डेटा प्राप्त करेगा और इसका जवाब देने का कोई तरीका नहीं है नियंत्रक। मुझे लगता है कि आप इसके बदले कुछ की तलाश कर सकते हैं जहां भेज () हर समय कहा जाता है और नियंत्रक कॉलबैक प्रदान करता है ... var ऐप = कोणीय मॉड्यूल ( 'ऐप्लिकेशन', []); App.factory ('serverData', function () {var eb = new vertx.EventBus ('http://xxx.xxx.xxx.xxx'); var तथ्य = {}; fact.getData = function (उपयोगकर्ता, पासवर्ड , कॉलबैक) {// कॉल इसे भेजें और इसे कॉलबैक फ़ंक्शन eb.send पास करें ("com.find.web.ed", {"Em": उपयोगकर्ता, "Pw": पासवर्ड}, कॉलबैक);}; वास्तविकता; }); App.controller ('mainController', फ़ंक्शन ($ दायरा, सर्वरडेटा) {$ scope.user = {उपयोगकर्ता: 'उपयोगकर्ता @ find.com', पासवर्ड: '123'}; $ scope.reply = {}; सर्वर डेटा ($ गुंजाइश.उसेर.उसेर, $ scope.user.password, फ़ंक्शन (उत्तर) {$ scope.reply = उत्तर; // को $ दायित्व की आवश्यकता हो सकती है। $ लागू () यहां}};}); आप यह भी एक $ q वादा ... var ऐप = कोणीय। मॉड्यूल के माध्यम से कर सकते हैं ('ऐप ', []); App.factory ('serverData', फ़ंक्शन ($ q) {var eb = new vertx.EventBus ('http://xxx.xxx.xxx.xxx'); var तथ्य = {}; fact.getData = function (उपयोगकर्ता , पासवर्ड) {var अवरुद्ध = $ q.defer (); // कॉल को कॉल करें और इसे कॉलबैक फ़ंक्शन eb.send पास करें ("com.find.web.ed", {"Em": उपयोगकर्ता, "Pw": पासवर्ड }, फ़ंक्शन (उत्तर) {deferred.resolve (उत्तर);} // भी त्रुटि को अस्वीकार कर देना चाहिए); वापस आस्थगित। प्रमोचित;}; वापसी तथ्य;}); App.controller ('mainController', फ़ंक्शन ($ दायरा, सर्वरडेटा) {$ scope.user = {उपयोगकर्ता: 'उपयोगकर्ता @ find.com', पासवर्ड: '123'}; $ scope.reply = {}; सर्वर डेटा ($ Scope.user.user, $ scope.user.password) .then (फ़ंक्शन (उत्तर) {$ scope.reply = उत्तर;})}};
Comments
Post a Comment