2013-04-13 4 views

ответ

2

Я не совсем уверен, почему вы хотите, чтобы коллекция разрешала загрузку маршрута, а не в контроллере - не могли бы вы уточнить? Например, следующее будет работать тоже:

App.config ($routeProvider, angularFireProvider) -> 
    $routeProvider.when '/test', 
    controller: 'TestCtrl' 

function TestCtrl($scope, angularFire) { 
    angularFire("https://<example>.firebaseio.com", $scope, "collection"). 
    then(function() { 
     // The collection has been resolved and available in $scope.collection 
    }); 
} 

Является ли это в основном вопрос синтаксическое удобство или мне не хватает функциональности вы хотите в выше?

Update: Для значения должны быть решены до того, как $routeChangeSuccess событие вызывается:

App.config(['$routeProvider', 'angularFire', function($routeProvider, angularFire) { 
    $routeProvider.when("/test", { 
    templateUrl: 'views/test.html' 
    controller: 'TestCtrl', 
    resolve: {collection: angularFire("https://<example>.firebaseio.com")} 
    }); 
}]); 

function TestCtrl(collection) { 
    // collection has already been resolved to its value. 
} 
+0

В этом методе '$ routeChangeSuccess' будет выбрасываться перед' angularFire' ресурсы будут решены, не так ли? –

+0

Вы правы - если вы хотите, чтобы значение было разрешено перед событием Fires, вы можете просто переместить вызов в 'angularFire' в свойство разрешения, так как оно возвращает обещание. Я отредактирую ответ, чтобы предоставить фрагмент кода. – Anant

+0

Anant, возможно, вы можете увидеть это, я пытаюсь использовать функциональные возможности решения, но он утверждает, что angularFire является неизвестным провайдером (по соответствующей заметке угловое FireCollection не подходит в этом случае из-за отсутствия области видимости?). aF и aFC работают нормально в другом месте моего кода, но возможно ли что-то, что мне не хватает в использовании его с настройкой и разрешением? – Michael

Смежные вопросы