使用角度承诺的Dropbox身份验证

时间:2014-05-01 21:20:47

标签: javascript angularjs

我正在尝试使用Angular中的promises为Dropbox身份验证编写代码。我有一个名为dropboxAuthServ的服务,它返回一个promise对象,其中包含创建的dropbox客户端的实例。

在我的控制器中,我试图使用此promise对象在视图上显示一些文本。我还计划在以后链接promises,这样我就可以使用我在我写的另一个服务中创建的dropboxClient。

问题是它不起作用。我是javascript的Angular和模块化编程的新手。所以我的理解可能有缺陷。请随时分享您的意见。我附上下面的代码。

控制器

myApp.controller('MainCtrl', ['$scope', 'dropBoxAuthServ',
    function ($scope, dropBoxAuthServ) {
        dropBoxAuthServ
            .getDbClient()
        .then(function(result){
            alert('Success' + result);
        });
    //$scope.result = dropBoxAuthServ.result;

}]);

服务

var myApp = angular.module('quickPlansApp',[]);

myApp.factory('dropBoxAuthServ', function($q){
    var
      dropboxClientCredentials,
      //dropboxAuthDriver,
      dropboxClient;

    // Insert your Dropbox app key here:
    var DROPBOX_APP_KEY = '';

    dropboxClientCredentials = {
      key: "xxxxxxxxxxxxxxx"
    };
    dropboxClient = new Dropbox.Client(dropboxClientCredentials);
    return{
        getDbClient: function(){
               var defer = $q.defer;
               dropboxClient.authenticate(function (error, client) {
                   if (error) {
                     throw error;
                   }
                   $timeout(function(){
                    defer.resolve({
                    'DBClient': client
               })},1000);
                });
            return defer.promise;
         }
      };
});

0 个答案:

没有答案