【发布时间】:2015-01-22 00:33:09
【问题描述】:
我有一个相当简单的createService 函数,可以将数据发送到我的 Firebase。运行时,它将我的$scope.serviceTitle 推送到名为services 的对象,并将我的$scope.providerTitle 推送到名为providers 的对象。
main.js
$scope.createService = function() {
var newService = { title: $scope.serviceTitle };
var newProvider = { title: $scope.providerTitle };
var servicePromise = ServiceService.add(newService);
var providerPromise = ProviderService.add(newProvider);
};
ServiceService.js
angular.module('outcomesApp').service('ServiceService', function(FBURL, $firebase) {
var serviceRef = new Firebase(FBURL).child('services');
var fireService = $firebase(serviceRef).$asArray();
return {
add: function addService(service) {
return fireService.$add(service);
}
};
});
我的数据最终看起来像这样:
{
"services": {
"-JgDvQz_opBMdULBPySG": {
"title": "Hernia Repair"
}
},
"providers": {
"-JgDp4zieowSM-ymfDHR": {
"title": "The Whittington Hospital",
}
}
}
我想在运行createService() 函数时推送第三个对象,称为service_at_provider,其中service 具有我刚刚推送的服务.key() 的值,provider 具有值提供者key()。这可能有助于理解我想要实现的目标:
{
"services": {
"-JgDvQz_opBMdULBPySG": {
"title": "Hernia Repair"
}
},
"providers": {
"-JgDp4zieowSM-ymfDHR": {
"title": "The Whittington Hospital",
}
},
"service_at_provider": {
"-JgDvQzYxtYGp7JspWYr": {
"service": "-JgDvQz_opBMdULBPySG", // matches the 'newService' just pushed
"provider": "-JgDp4zieowSM-ymfDHR" // matches the 'newProvider' just pushed
}
}
}
由于$add,servicePromise 变量返回了一个承诺。但我不知道如何在同一推送中返回 key() 并将其传递给名为 service_at_provider 的新对象。
这可能吗?
【问题讨论】:
标签: javascript firebase angularfire