0

関数がグローバル変数を設定しない理由がわかりません。私のコード:

 var localizeRegForm = {};


 var handlerLocalDef = function(defer) {
     var hash;

     defer.then(
         function(response) {
             return hash = response.data;
         },
         function(err) {
             showPopup(err);
         }
      );

      return hash;
  };

  var initialized = function() {
      console.log("localizeRegForm",localizeRegForm); 
      localizeRegForm = handlerLocalDef(Localization.getLocalizedDefer('regularform'));
      console.log("localizeRegForm",localizeRegForm)
  }

私のコンソールショー:

  1. localizeRegForm Object {}
  2. localizeRegForm undefined
4

2 に答える 2

0

次のように書き直したほうがよいでしょう。

        var initialized = function()  { 
                Localization.getLocalizedDefer('regularform').then(function(response){
                    localizeRegForm = response.data;
                    console.log("localizeRegForm",localizeRegForm)
                });
             }

問題はAngularJSに関するものではなく、遅延オブジェクトの使用に関するものです

于 2013-09-26T08:42:45.917 に答える
0

このように使用します

    var deferred = $q.defer();
        $http({
            method: 'POST',
            url: 'something',
            data: data
        }).
        success(function(response, status, headers, config) {
            deferred.resolve(response);
        }).
        error(function(response, status, headers, config) {
            deferred.reject("");
        })
        return deferred.promise;
于 2013-09-26T08:43:41.230 に答える