새로운 Firebase 쿼리를 공장에서 작동 시키려고하는데, 막혔습니다. 상대방 이름을 기준으로 상대방 테이블에서 '로고'의 가치를 반환하고 싶습니다. 나는 실행 중포 기지 문서에서 console.log
와 예제를 얻을 수 있습니다 : Angular factory에서 Firebase 쿼리를 사용하는 방법은 무엇입니까?
function OpponentService($firebase) {
var factory = {};
var _url = 'https://somefirebaseproject.firebaseio.com/opponents';
var _ref = new Firebase(_url);
factory.getLogo = function(opponent) {
_ref.orderByChild('name').equalTo(opponent).on("child_added", function(snapshot){
console.log(snapshot.val().logo);
});
};
return factory;
}
내 컨트롤러 OpponentService.getLogo(opponentName)
내 공장 전화
$scope.opponentLogo = OpponentService.getLogo(opponentName)
.
factory.getLogo = function(opponent) {
_ref.orderByChild('name').equalTo(opponent).on("child_added", function(snapshot){
return snapshot.val().logo;
});
};
하지만 분명히 내가 완전히 내가 undefined
를 얻을 수 있기 때문에 공장, 각도에서 어떻게 작동하는지 이해가 안 :이 같은 return 문에 여러 가지 변화를 시도했다. 그 가치가 아직 사용 가능하지 않을 수 있으며 나는 언젠가 약속을 사용해야합니까? 나를 올바른 방향으로 안내 할 수있는 사람은 누구입니까?
답장을 보내 주셔서 감사합니다. 이미 AngularFire를 사용하고 있으므로 쉽게 말할 수 있어야합니다. – Lennert
한 명의 상대방 로고를 반환하려고합니까? 앱의 상대방의 다른 속성에 액세스하거나 바인딩해야합니까? –
예이 방법에서는 한 명의 상대방 로고 만 반환하면됩니다. 그러나 전체 팩토리에는'factory.getAllOpponents'와 같은 더 많은 메소드가 포함되어 있습니다. – Lennert