javascript - Parse/AngularJS - 使用用户 ID 输入数据

标签 javascript angularjs database parse-platform

我正在使用 AngularJS 开发一个 Parse 应用程序,并重新设计 Controller 以在发帖时指向登录的用户。在我的数据库表中,我设置了一列“作者”来指向用户。我制作了一个单独的 service.js 文件,用 Squeeg 调用它。当我点击创建时,它没有输入带有user.id的数据。没有它它也能正常工作。我该如何解决这个问题以确保用户 objectId 是数据的一部分添加到数据库中?

$scope.create=function(){
    var user = Parse.User.current(); 
    console.log(user.id); 

    Squeeg.create({ author:user.id, eventname:$scope.events.title, eventDescription:$scope.events.description}).success(function(data){
       alert("done");
    });
}

最佳答案

由于我需要 50 声望才能发表评论,因此需要在这里询问,您是否访问过 authfactory/authserverice 以从那里获取当前用户?假设您已经登录?

然后在 authFactory 中你可以有这样的东西。

app.factory('authFactory', ['$http', '$window', function ($http, $window) {
    var authFactory = {};

    authFactory.logIn = function (user) {
        return $http.post('/login', user).success(function (data) {
            authFactory.saveToken(data.token);
        });
    };

    authFactory.saveToken = function (token) {
        $window.localStorage['appToken'] = token;
    };

    authFactory.getToken = function () {
        return $window.localStorage['appToken'];
    };

    authFactory.logOut = function () {
        $window.localStorage.removeItem('appToken');
    };


    authFactory.currentUser = function () {
        if(authFactory.isLoggedIn()){
            var token = authFactory.getToken();
            var payload = JSON.parse($window.atob(token.split('.')[1]));

            return payload.username; // or return payload.id ..... / return payload 
        }
    };

    authFactory.isLoggedIn = function () {
        var token = authFactory.getToken();

        if(token){
            var payload = JSON.parse($window.atob( token.split('.')[1]) );

            return payload.exp > Date.now() / 1000;
        } else {
            return false;
        }
    };

    return authFactory;
}]);

然后您只需将其与 Controller 绑定(bind)即可访问它。

app.controller('AnyCtrl', ['$scope', 'authFactory',
    function ($scope, authFactory) {

        $scope.currentUser = authFactory.currentUser;
    }
]);

关于javascript - Parse/AngularJS - 使用用户 ID 输入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32930763/

相关文章:

javascript - 在前端 promise 中链接相互依赖的服务器调用是一种不好的做法吗?

database - postgresql 8.3 恢复数据库出错

mysql - 了解 mysql 元组搜索的性能影响

javascript - 创建动态模板并绑定(bind)内容 Angular

javascript - 不使用 concat 方法添加两个数组

javascript - 使用 PHP 从包含 youtube/vimeo url 的字符串中提取域名、视频 url 和视频 id 的正则表达式模式

javascript - 我想在使用 Jest Snapshots 时拥有我的图像文件名/路径

javascript - 处理对 angularjs 指令的嵌入内容的点击

javascript - 在 cypress.io 中对动态文件运行测试

database - 将 Jitterbit 连接到 Heroku Postgre