2016-07-03 2 views
2

Я пытаюсь выяснить, что является ussage из $waitForSignIn()

Документы говорят:

$ waitForSignIn(), который возвращает обещание выполнили с текущим состоянием аутентификации. Это полезно, если вы хотите захватить состояние аутентификации до того, как маршрут будет показан

Но как это будет работать?

Они говорят, что вы должны реализовать это следующим образом (от: link):

app.config(["$stateProvider", function ($stateProvider) { 
    $stateProvider 
    .state("home", { 
     // the rest is the same for ui-router and ngRoute... 
     controller: "HomeCtrl", 
     templateUrl: "views/home.html", 
     resolve: { 
     // controller will not be loaded until $waitForSignIn resolves 
     // Auth refers to our $firebaseAuth wrapper in the example above 
     "currentAuth": ["Auth", function(Auth) { 
      // $waitForSignIn returns a promise so the resolve waits for it to complete 
      return Auth.$waitForSignIn(); 
     }] 
     } 
    }) 
    .state("account", { 
     // the rest is the same for ui-router and ngRoute... 
     controller: "AccountCtrl", 
     templateUrl: "views/account.html", 
     resolve: { 
     // controller will not be loaded until $requireSignIn resolves 
     // Auth refers to our $firebaseAuth wrapper in the example above 
     "currentAuth": ["Auth", function(Auth) { 
      // $requireSignIn returns a promise so the resolve waits for it to complete 
      // If the promise is rejected, it will throw a $stateChangeError (see above) 
      return Auth.$requireSignIn(); 
     }] 
     } 
    }); 
}]); 

так можно было бы ожидать, что HomeCtrl прибудете загружается, когда пользователи подписан в? но загружается с currentAuth на null, когда ни один пользователь не вошел в систему,

Затем я попробовал не положить Бодрствующего на currentAuth никаких изменений, когда пользователь регистрируется. Но события не были вызваны для входа в систему и не из

Затем я подумал, что он только ждет, когда вы пытаетесь войти в систему (например, через всплывающее окно). Поэтому я запустил всплывающее окно, а затем сразу переключился на домашнюю страницу, но потом получил null из currentAuth, и если обновить, я получу свои пользовательские данные.

Итак, в чем смысл? просто чтобы вы могли разрешить пользователю, когда он доступен?

+0

Нам нужно будет увидеть ваш код контроллера, вам нужно будет вводить currentAuth в свой контроллер перед его использованием. –

ответ

0

Вы должны ожидать, что ваш HomeCtrl узнает, был ли пользователь подписан или нет, а ваш маршрут доступа к ограниченному доступу, если пользователь не подписан.