Я пытаюсь вернуть true или false из Laravel в директиву $ scope в Angularjs. Это код laravel, который называется:
public function check() {
return Response::json(Auth::check());
}
Это сервис, который запрашивает Laravel:
app.factory('UserService', ['$http', '$location', function($http, $location) {
return {
loggedIn: function() {
var c = $http.get('/auth/check');
c.success(function(data) {
console.log(data);
return data;
});
}
}
}]);
Ответ прекрасно записывается в консоль, но я не могу связать его с директивой $ scope:
app.controller('BaseController', ['$scope', 'UserService', function($scope, UserService) {
$scope.loggedIn = UserService.loggedIn();
}]);
Ничего не возвращает, когда я называю это как:
{{ loggedIn }}
…по-моему.
Любая помощь?
$http
Сервис возвращает обещание. Таким образом, вы должны написать что-то вроде
app.factory('UserService', ['$http', '$location', function($http, $location) {
return {
loggedIn: function() {
return $http.get('/auth/check');
}
}
}]);
контроллер:
UserService.loggedIn().success(function(data) {
$scope.loggedIn = data;
});
Других решений пока нет …