2013-05-24 9 views
6

मैं फायरबेस के लिए नया हूं। मैं इसे कोणीय के साथ बनाना चाहता हूं और मुझे कोणीय पाया गया।फायरबेस एंजुलरफायर के बीच अंतर अंतर्निहित और स्पष्ट सिंक

कोणीय में डायर दस्तावेज़ सूचीबद्ध लागू और स्पष्ट सिंक। मैंने जिथब में दस्तावेज़ को समझने की कोशिश की लेकिन मुझे अभी भी समझ में नहीं आता कि अंतर क्या है और उनका उपयोग कैसे किया जाए। angularFire() और angularFireCollection()

भी, क्या तर्क हैं angularFire() और angularFireCollection() में क्या मतलब है? adv

उत्तर

19

उपयोग angularFire में

धन्यवाद निहित सिंक चाहते हैं, अर्थात अपने मॉडल में किए गए तुरन्त सभी अन्य ग्राहकों (और इसके विपरीत) के लिए प्रचार करेंगे किसी भी परिवर्तन।

angularFireCollection का उपयोग करें यदि आप किसी भी स्थानीय डेटा परिवर्तन सर्वर पर भेजे जाने पर नियंत्रण में रहना चाहते हैं। कोई भी दूरस्थ परिवर्तन अभी भी आपके स्थानीय संग्रह को स्वचालित रूप से अपडेट कर देगा।

अंतर्निहित सिंक:

myapp.controller('MyCtrl', ['$scope', 'angularFire', 
    function MyCtrl($scope, angularFire) { 
    var promise = angularFire(url, $scope, 'items', []); 
    } 
]); 

पहले तर्क Firebase के स्थान, जिस पर आप की दुकान/डेटा पुनः प्राप्त करना चाहते हैं। दूसरा तर्क दायरा है, तीसरा तर्क $ दायरे के तहत संपत्ति का नाम है जिसे आप वादा पूरा होने के तुरंत बाद डेटा बाध्य करना चाहते हैं। उदाहरण के लिए:

promise.then(function() { 
    // Data available in $scope.items 
}); 

चौथा तर्क डेटा के प्रकार के अपने जे एस वस्तु में आप चाहते हैं। ऑब्जेक्ट्स के लिए [] ऑब्जेक्ट्स के लिए, "" स्ट्रिंग्स के लिए 1 और true के लिए बूलियन के लिए उपयोग करें। ध्यान दें कि अगर उपलब्ध फायरबेस स्थान में कोई डेटा मौजूद नहीं है तो आप डिफ़ॉल्ट मान सेट करने के लिए इस तर्क का भी उपयोग कर सकते हैं।

यदि आप कोई परिवर्तन करना चाहते हैं तो अंतर्निहित सिंक में, बस $scope.items संशोधित करें और परिवर्तन स्वचालित रूप से फ़ायरबेस के माध्यम से अन्य सभी ग्राहकों के साथ सिंक्रनाइज़ हो जाएगा। इसी तरह, दूरस्थ रूप से किए गए किसी भी बदलाव स्वचालित रूप से $scope.items अपडेट हो जाएंगे।

स्पष्ट सिंक:

myapp.controller('MyCtrl', ['$scope', 'angularFireCollection', 
    function MyCtrl($scope, angularFireCollection) { 
    $scope.items = angularFireCollection(url); 
    } 
]); 

यह विधि केवल एक तर्क लेता है। यदि आप आइटम जोड़ना या निकालना चाहते हैं, तो add, remove या update विधियों का उपयोग करें। उदाहरण के लिए:

$scope.items.add({test: "object"}); 

angularFireCollection के बाद से एक गुंजाइश की आवश्यकता नहीं है, आप भी आप (कोणीय निर्देशों, मॉड्यूल, आदि) एक नियंत्रक के Firebase बाहर का उपयोग करने के आशा है कि इस मदद करता है चाहते हैं, तो इस का उपयोग कर सकते हैं!

+0

मुझे लगता है कि आप अपने पहले वाक्य में "स्पष्ट" के बजाय "निहित" का मतलब है। – bennlich

+0

स्पष्ट सिंक में। इसलिए हम अब .on() .set() .push() का उपयोग नहीं करते हैं? – vzhen

+0

धन्यवाद @ बेनेलिक, तय! @vzhen नोप, स्पष्ट सिंक में आप केवल 'add() ',' remove() ', और' update() 'का उपयोग करते हैं। – Anant

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