4

ローカル ストレージからデータを取得しようとしていますが、一度使用したい日付はready. 何かのようなもの:

// this belongs to a Helper factory
getData: function(){
        var deferred = jQuery.Deferred();
        setTimeout(function(){
            var data = {
                description: localStorageService.get('description'),
            };
            deferred.resolve()
        }, 10);
        return deferred.promise();
  },

// I set it up so that in the controller I can do
// $scope.data = Helper.getData();

私が持っている例と同様に、ローカルストレージからオブジェクトを取得したら、dataオブジェクトを返したいだけですdescription

私は angularjs を使用しているので{{data}}、約束が解決されたらビューに表示したいと考えています。たぶん使用するng-hideか、似たようなものです。

いずれにせよ、私の質問はその約束を設定することです。

何か案は?

4

2 に答える 2

5

$timeout() は promise を返すため、これは機能します。

getData: function(){
   return $timeout(function(){
       return localStorageService.get('description'),
   },3000);
}

利用方法:

getData().then(function(data){
   console.log(data);
})
于 2014-08-07T05:05:48.107 に答える
3

ローカルストレージから読み取っていて、それが同期操作であるため、 Angularjs$qでpromiseを処理するために通常使用されるライブラリです。なぜpromiseを返したいのかわかりませんが、これは通常angularで行われますが、これ:

getData: function(){
   var deferred = $q.defer();
   $timeout(function(){
     var data=localStorageService.get('description'),
     deferred.resolve(data);
   },3000);
   return deferred.promise;
}

利用方法:

getData().then(function(data){
   console.log(data);
})
于 2014-08-07T04:51:51.170 に答える