2016-03-25 7 views
0
<dom-module id="payment-list"> 
    <template> 
    <template is="dom-repeat" items="{{clients}}"> 
    <paper-item> 
     <span>{{item.Name}}</span> 
      &nbsp;|&nbsp; 
     <span>{{item.Amount}}</span> 
    </paper-item> 
    </template> 
    </template> 
     <script> 
     Polymer({ 
      is: 'payment-list', 
      properties: { 
      clients: { 
       notify:true, 
       type: Array, 
       value: [{Name:'A', Amount:'100'}, 
         {Name:'B', Amount:'200'}]   
      } 
      }, 
      handleComplete: function(NewValues){ 
      /***********/alert(NewValues);/***********/ 
      }, 
      ready: function(){ 
       google.script.run.withSuccessHandler(this.handleComplete).GS_GetClients(); 
      } 
     }); 
     </script> 
    </dom-module> 

Ich verwende google.script.run, um mit der GAS-Funktion GS_GetClients() zu kommunizieren. GS_GetClients wird ein Objekt zurückgeben und ich versuche, diese neuen Werte an die Eigenschaft 'clients' zu binden. Wenn ich die Warnung mache, sehe ich, dass neue Werte von der serverseitigen GAS-Funktion an die handleComplete-Funktion übergeben werden. Aber ich kann die neuen Werte nicht der Eigenschaft 'clients' zuweisen.Antwort des Servers auf Polymereigenschaftswerte

Ich kann die Werte nicht mit this.clients = NewValues ​​einstellen. Dies macht den Wert zu undefiniert.

Antwort

0

Der Aufruf von google.script.run ist asynchron.

Das Ergebnis scheint zurückzukommen, als das Rendern von {{clients}} bereits passiert ist.

Also in Ihrem Erfolgs-Handler handleComplete (..) müssen Sie irgendwie Polymer sagen, neu zu zeichnen.

Ich weiß Polymer nicht aber von den docs Polymer data binding scheint es, als ob Sie es wie folgt tun:

Polymer({ 
    ... 
    setClients: function(clients) { 
    this.clients = clients; 
    // Notification required for binding to update! 
    this.notifyPath('clients', this.clients); 
    } 
}); 

Wie benutzerdefinierte Methoden in Polymer nennen ist hier member-functions erklärt, leider eine nicht bieten kann detaillierte Antwort zu Polymer.

+0

Aber wie ordne ich 'Clients' neue 'Werte' zu? Auf die Eigenschaft 'clients' kann nicht innerhalb von handleComplete function zugegriffen werden. Wenn ich gebe 'Clients' in 'handleComplete' zu protokollieren, gibt es das Ergebnis als undefiniert. –

Verwandte Themen