/ / Angularfire में जावास्क्रिप्ट ऑब्जेक्ट के तरीकों के साथ कैसे काम करें - जावास्क्रिप्ट, angularjs, firebase, angfire

Angularfire में जावास्क्रिप्ट ऑब्जेक्ट विधियों के साथ कैसे काम करें - जावास्क्रिप्ट, angularjs, firebase, angularfire

मेरे पास एक ऑब्जेक्ट है जो एक रेस्तरां ऑर्डर का प्रतिनिधित्व करता है:

function order () {
this.customer_name = ""
this.menu = // menu object
}

व्यापार तर्क के लिए कुछ वस्तु विधियों के साथ विस्तारित, जैसे:

order.prototype.value = function() {
var total = 0;
for (var i = 0; i < this.menu.length; i++) {
// calculate the order value
}
return total;
}

कोणीय कंट्रोलर ऑर्डर में सबमिट होने पर व्यू में एक बटन से एनजी-क्लिक के माध्यम से एक सरणी पर धकेल दिया जाता है:

var ref = new Firebase("https://myfirebase.firebaseio.com");
$scope.orders = [];
angularFire(ref, $scope, "orders");

$scope.currentOrder = orderService;

$scope.submitOrder = function() {
$scope.orders.push($scope.currentOrder);
};

एक बार आदेश को सरणी में धकेल दिया जाता है, जैसे गुण orders[0].customer_name काम, लेकिन तरीकों की तरह orders[0].value() डॉन "टी।

यह उचित प्रतीत होता है कि Firebase / Angularfire केवल JSON को सिंक कर रहा होगा, लेकिन क्या कोई ऐसा तरीका है जो मुझे आदेश-संबंधी तर्क को शामिल करने की अनुमति देगा order ऑब्जेक्ट, अर्थात् लिखने के बिना $scope.getOrderValue(orders[0])?

उत्तर:

उत्तर № 1 के लिए 1

वहाँ के रूप में क्या आप चाहते हैं के बाद से एक महान तरीका है, नहीं है फायरबेस एफएक्यू:

निम्न-स्तर पर, हम मूल रूप से JSON: स्ट्रिंग्स, नंबर, बूलियन और ऑब्जेक्ट्स के समान डेटा प्रकारों का समर्थन करते हैं (जिसमें बदले में स्ट्रिंग्स, नंबर, बूलियन और अधिक ऑब्जेक्ट होते हैं)।

जिसका मतलब है कि आप डेटा स्टोर कर सकते हैं लेकिन फ़ंक्शंस नहीं। ऐसा लगता है कि एक ही बात को पूरा करने का एक साफ तरीका है कि आप अपनी संपत्ति के रूप में नवीनतम ऑर्डर मूल्य को स्टोर कर सकते हैं order ऑब्जेक्ट, और आपके हिस्से के रूप में एक विधि है orderService जब भी मेनू आइटम जोड़े या निकाले जाते हैं, तो इसे अपडेट किया जाता है। वैकल्पिक रूप से, आपने जो सुझाव दिया है उसे करें और ए getOrderValue कहीं न कहीं, लेकिन यह अभी भी समझ में आता है कि एक सेवा में डाल दिया।


जवाब के लिए 0 № 2

मैं वास्तव में एक ही मुद्दा था। मैं अपने फायरबेस ऑब्जेक्ट में एक विधि जोड़ना चाहता था। नवीनतम एंगुलरफायर डॉक्स में देखने के बाद मैंने पाया कि $ विस्तार बस इतना ही कर सकता है मैंने इसे अभी तक परीक्षण नहीं किया है, लेकिन मुझे लगता है कि यह इसके बारे में जाने का तरीका है।