2016-10-03 6 views
0

Я использую Backand в качестве моей базы данных, и они предоставили приложение todo в своем github, но оно только извлекает все данные пользователей. Я хочу только получить данные зарегистрированного пользователя. Как я могу это сделать?Backand/Ionic - Как получить данные зарегистрированного пользователя?

Несколько, я хочу изменить его на моем services.js:

service.all = function() { 
     return $http.get(getUrl()); 
    }; 

Я хочу, чтобы передать объект текущего пользователя.

GitHub: https://github.com/backand/todos-with-users

+0

использовать любой идентификатор пользователя, чтобы получить информацию о конкретном пользователе. – Anuj

+0

@AnujGupta проблема в том, что пользователь имеет несколько todos. –

+0

Вы должны использовать вкладку «Безопасность», как описано здесь: http://stackoverflow.com/a/38100830/3809559 – Itay

ответ

0

Существует TODO с пользователями демо. https://github.com/backand/angular-yeoman-todos/tree/todo-with-users

В конце концов, мой абонентский выглядит примерно так ...

angular.module('app.services') 

.service('userService', ['Backand', '$state', '$q', '$http', 'authService', function(Backand, $state, $q, $http, authService) { 
this.getUserByEmail = function(email) { 

    var resultsDeferred = $q.defer(); 
    var requestDeferred = $http({ 
     method: 'GET', 
     url: Backand.getApiUrl() + '/1/objects/users', 
     params: { 
      pageSize: 1, 
      pageNumber: 1, 
      filter: [{ 
       fieldName: 'email', 
       operator: 'equals', 
       value: email 
      }], 
      sort: '' 
     } 
    }); 

    requestDeferred.then(function(response) { 
     var user = response.data.data; 
     resultsDeferred.resolve(user); // allow the controller to render 
    }, function failureCallback(reason) { 
     resultsDeferred.reject(reason); // bubble up failure 
    }); 
    return resultsDeferred; 
} 

}]);

Вы получаете письмо от ...

var user = Backand.getUserDetails(); 
var userEmail = null; 

if (user.$$state.value !== null) { 
    userEmail = user.$$state.value.username; 
} else { 
    userEmail = null; 
} 

var userDeferred = userService.getUserByEmail($scope.userEmail).promise; 

     userDeferred.then(function successCallback(response) { 
      $scope.user = response[0]; 
      console.log('userId (email): %o', $scope.user.id); 
      console.log('user phone: %o', $scope.user.phone); 
     });