क्या मुझे $$ द्वारा अपडेट किया गया क्या प्राप्त हो सकता है या $$ अपडेट किया गया एक फ़ंक्शन चलाया जा सकता है जिसे मैं हर बार कार्य की जांच से प्राप्त कर सकता हूं?
दिन के अंत में, मुझे इस बात की गिनती रखने की आवश्यकता है कि उपयोगकर्ता कितने कार्य पूरा करते हैं। ऐसा लगता है कि फायरबेस के पास उस डेटा को स्वचालित रूप से समन्वयित करने के तरीके हैं लेकिन यह स्पष्ट नहीं है कि यह विशेष रूप से कैसे करें। जब कोई कार्य पूरा हो जाता है तो मैंने $ घड़ी और चलने वाले कार्यों के साथ समस्याओं में भाग लिया है। यह ऐसा करने का एक दिलचस्प तरीका है लेकिन मैं टुकड़ों को एक साथ नहीं रख सकता। http://plnkr.co/edit/iAGvPHFWn2GSPGzBRpKh?p=preview
// Code goes here
angular.module('app', ['firebase']);
angular
.module('app')
.controller('main', function($scope, $firebase, $timeout, $window, ListWithTotal) {
var ref = new Firebase("https://plnkr.firebaseio.com");
$scope.listWithTotal = ListWithTotal(ref);
$scope.addTask = function(task) {
$scope.listWithTotal.$add({
title: task.title,
complete: false,
tally: 0
});
task.title = '';
};
$scope.completeTask = function(task) {
if (task.complete === true) {
task.complete = true;
task.tally = 1;
} else {
task.complete = false;
task.tally = 0;
}
$scope.listWithTotal.$save(task);
};
$scope.tallyCount = '';
//it would be cool if I can get tallyCount to receive
//the result of getTotal or automagically with $$updated.
}).factory("ListWithTotal", ["$FirebaseArray", "$firebase", function($FirebaseArray, $firebase) {
// create a new factory based on $FirebaseArray
var TotalFactory = $FirebaseArray.$extendFactory({
getTotal: function() {
var total = 0;
angular.forEach(this.$list, function(rec) {
total += rec.tally;
});
return total;
},
$$updated: function(){
return this.$list.getTotal();
}
});
return function(listRef) {
var sync = $firebase(listRef, {arrayFactory: TotalFactory});
return sync.$asArray(); // this will be an instance of TotalFactory
};
}]);
उत्तर के लिए धन्यवाद। इस तरह मैं इसे अब कर रहा हूं। इस कार्यक्षमता को सीधे सरणी में बांधने का एक तरीका होना चाहिए ताकि जब भी कोई कार्य जोड़ा/हटाया/बदला जाए तो अद्यतन स्वचालित रूप से सर्वर/स्थानीय रूप से होता है। यही वह है जिसे मैं समझने की कोशिश कर रहा हूं। – EmptyPockets
यह सुनिश्चित नहीं है कि यह वही है जो आप खोज रहे हैं, लेकिन दृश्य में यह बाध्यकारी काम करता है: 'पूर्ण गणना: {{listWithTotal.getTotal()}} ' –
यह काम करेगा (शायद, मेरे मामले में मेरे पास एक श्रृंखला है उपयोगकर्ता लेकिन यह असंबंधित है) लेकिन मैं देखना चाहता हूं कि मैं $$ अपडेट किए गए फ़ंक्शन को ओवरराइट करके इसे कर सकता हूं या नहीं। ऐसा लगता है कि $ firebase सरणी के अंदर वह कार्यक्षमता क्लीनर और बनाए रखने में आसान होगी। मुझे अन्य चीजों को करने की आवश्यकता होगी जैसे कार्यों की प्रतियां बनाना और उन्हें विभिन्न सूचियों आदि में ले जाना। – EmptyPockets