0

私は、アプリケーションスクリプトでクライアントサイドjs HtmlServiceでui-routerを操作しようとしています。網羅しようとした後、私はシンプルなJS問題でこだわっている非同期内部関数が[ui-routerとhtmlservice]を返した後に外側fnを返す

.state('state1', { 
     url: base+'?page=state1_KB', 
     views: { 
       'content':{ 
        template: 
        function(){ 
         google.script.run.withFailureHandler(notemp).withSuccessHandler(temp).include(obj); 

         function temp(view){ 
          console.log(view); //This logs successfully. 
          return view; //This works too I suppose 
          } 
         return temp(view); //This doesn't work obviously 
         }, 
        controller: 'state1Controller' 
        } 
       } 
    }) 

include(obj)は、テンプレートをフェッチし、バックtemp(view)にそれを与えます。私はtemp(view)から値を返す必要があります。しかし、明らかにそれは何も返さないでしょう。

temp(view)の後に外部関数を返す方法は、google.script.runによって呼び出されましたか?純粋なJS愛好家については

、私は、この非常によく似だと思う:

UI-ルータまたは角度の視点から
function outer(){ 
    var a = "b"; 
    setTimeout(function(){console.log("this is Log"); a = 'c';}, 2000); 
    return a; 
} 

、私は私は何を達成するために何ができるというシンプルなものがありますここで試して?このような

+0

あなたの第二の例では()外で返される値は何だと思いますが動作するはず? –

+0

私が与えたjsの例では、 "b"でなければなりません。 – Snook

答えて

0

何かが

templateProvider: 
      function($q){ 
         var deferred = $q.defer(); 
         var temp = function(view){ 
          console.log(view); 
          deferred.resolve(view); 
         } 
         google.script.run 
           .withFailureHandler(notemp) 
           .withSuccessHandler(temp) 
           .include(obj); 

         return deferred.promise; 
        }, 
        controller: 'state1Controller' 
        } 
関連する問題