angularjs - Firebase angularfire child.$asObject give properties undefined -


मुझे यह कोड मिला है:

कारखाना

  app.factory ('आइटम', फ़ंक्शन ($ firebase, FIREBASE_URL) {var ref = new Firebase (FIREBASE_URL); var आइटम = $ firebase (ref.child ('आइटम'))। $ AsArray ( ); Var मद = {सभी: फ़ंक्शन () {वापसी आइटम;}, बनाएं: फ़ंक्शन (आइटम) {रिटर्न आइटम। $ Add (item);}, प्राप्त करें: फ़ंक्शन (आइटम आईडी) {वापसी $ firebase (ref.child ( बच्चे (आइटम आईडी))। (आइज़ आईडीआईडी)। $ AsObject ();}, अपडेट करें: फंक्शन (आइटम आईडी, आइटम) {रिटर्न डॉलर फायरबसे (रिफ। चाइल्ड ('आइटम')। ;}, हटाएं: फ़ंक्शन (आइटम) {रिटर्न आइटम। $ निकालें (आइटम);}}; वापसी आइटम;});  

मार्ग

  app.config (फ़ंक्शन ($ राज्य प्रदाता) {$ stateProvider .state ('items_update', {url : 'आइटम / अद्यतन /: आईडी', टेम्पलेटउरेल: 'दृश्य / आइटम / फॉर्म-एचएमएस', नियंत्रक: 'आइटम्सअपडेट कंट्रोलर', हल करें: {आइटम: फ़ंक्शन (आइटम, $ स्टेटपरैम) {वापसी आइटम.गेट ($ राज्यपरम। आईडी);}}})});  

नियंत्रक

  app.controller ('ItemsUpdateController', फ़ंक्शन ($ दायरा, आइटम, $ राज्य) {$ scope .item = item; console.log ($ scope.item.url); $ scope.add = function () {items.update ($ scope.item)। तब (function () {$ state.transitionTo ('आइटम' );});}});  

क्यों console.log ($ scope.item.url); मुझे अव्यक्त देना क्या है?

लेकिन इस दृश्य में मुझे सभी डेटा मिल गया

html

  & lt; form वर्ग = "फ़ॉर्म-क्षैतिज" भूमिका = "फॉर्म" नाम = "फॉर्म" डेटा-एनजी-जमा करें = "जोड़ ()" & gt; & Lt; div वर्ग = "फॉर्म-समूह" & gt; & Lt; input type = "text" name = "title" tabindex = "1" वर्ग = "फॉर्म-कंट्रोल" प्लेसहोल्डर = "{{items.form.title '| अनुवाद}}" डेटा-एनजी-मॉडल = "आइटम .title "आवश्यक =" आवश्यक "डेटा-एनजी-मिनलाँग =" 3 "डेटा-एनजी-मैक्सिलैंम्ब =" 25 "यूजर-फीडबैक / & gt; & Lt; / div & gt; & Lt; div वर्ग = "फॉर्म-समूह" & gt; & Lt; इनपुट प्रकार = "टेक्स्ट" नाम = "सामग्री" टैबिंडेक्स = "2" वर्ग = "फॉर्म-कंट्रोल" प्लेसहोल्डर = "{{items.form.ingredients '| अनुवाद}}" डेटा-एनजी-मॉडल = "आइटम । सामग्री "आवश्यक =" अपेक्षित "एनजी-पैटर्न =" / ^ \ w (\ s *,? \ S * \ w) * $ / "उपयोगकर्ता-प्रतिक्रिया / & gt; & Lt; / div & gt; & Lt; div वर्ग = "फॉर्म-समूह" & gt; & Lt; input type = "text" name = "price" tabindex = "3" वर्ग = "फॉर्म-कंट्रोल" प्लेसहोल्डर = "{{items.form.price '| translate}}" डेटा-एनजी-मॉडल = "आइटम .price "आवश्यक =" आवश्यक "डेटा-स्मार्ट फ़्लोट उपयोगकर्ता-प्रतिक्रिया / & gt; & Lt; / div & gt; & Lt; div वर्ग = "फॉर्म-समूह" & gt; & Lt; बटन प्रकार = "बटन" tabindex = "4" वर्ग = "बीटीएन बीटीएन-डिफ़ॉल्ट बीटीएन-एलजी" आइटम = "आइटम" डेटा-अपलोडर & gt; {{'items.form.upload' | अनुवाद करें}} & lt; / button & gt; & Lt; इनपुट प्रकार = "टेक्स्ट" नाम = "url" शैली = "प्रदर्शन: कोई नहीं;" आवश्यक = "आवश्यक" डेटा-एनजी-मॉडल = "आइटम.उर्नल" / & gt; & Lt; / div & gt; & Lt; div वर्ग = "फॉर्म-ग्रुप फॉर्म-नो-आवश्यक क्लियरफिक्स" & gt; & Lt; div वर्ग = "पुल-दायें" & gt; & Lt; बटन प्रकार = "सबमिट करें" tabindex = "5" वर्ग = "बीटीएन बीटीएन-प्राथमिक" डेटा-एनजी-अक्षम = "फ़ॉर्म। $ अमान्य" & gt; {{'items.form.submit' | अनुवाद करें}} & lt; / button & gt; & Lt; / div & gt; & Lt; / div & gt; & Lt; / प्रपत्र & gt; @ फ्रैंक वैन पफेलन टिप्पणी के रूप में मैंने इसके साथ काम किया:  
   

> App.controller ('ItemsUpdateController', फ़ंक्शन ($ दायरा, आइटम, $ राज्य) {आइटम। $ लोड ()। तब (फ़ंक्शन (डेटा) {$ scope.item = data; console.log ($ scope.item Url);}); $ scope.add = function () {items.update ($ scope.item) .then (function () {$ state.transitionTo ('आइटम');});}});

ऐसा इसलिए है क्योंकि आपके console.log ($ scope) Item.url); चलाता है, अभी तक फायरबेज से डेटा लोड नहीं किया गया है।

यह भी देखें और।

एंबेडेड फायरबेज / एंगलफ़ाइल से एक सूचना के लिए सुनता है, जब यह पता चलता है कि डेटा लोड हो गया है।

Comments

Popular posts from this blog

java - Can't add JTree to JPanel of a JInternalFrame -

javascript - data.match(var) not working it seems -

javascript - How can I pause a jQuery .each() loop, while waiting for user input? -