2016-12-16 3 views
1

Ich habe eine übergeordnete Komponente, die einen Ajaxaufruf durchführt und die Daten vom Back-End für das Grid erhält. Zum Rendern von Grid-Daten habe ich eine Child-Komponente erstellt, in der ich die Liste als Bindung übergebe, aber wenn ich die Liste in meiner Eltern-Komponente ändere, löst die Child-Komponente niemals ein Change-Event aus. Mein Code ist unten. Noch eine Sache, die ich diese Eltern- und Kindkomponenten unter einer anderen Komponente benutze, die beschissene kendo Tabstrip benutzt. Ich verwende für offizielle Grund Tabstrip aber ich hasse alle Kendo Kontrollen zur Zeit sie für jquery konzipiert sind, jedoch mit dem Label der Winkel comaptibleEckige untergeordnete Komponente löst kein Änderungsereignis in der Liste aus

Geordnete Komponente

<div layout="column"> 
    <md-content> 
     <div layout="row"> 
      <member-mvlicense-grid member-id="vm.memberId"></member-mvlicense-grid> 
     </div> 
    </md-content> 
</div> 

My Child Komponente

verkauft zu werden
<md-content> 
    <div kendo-grid="vm.grid" options="vm.gridOption" ng-style="{'height':vm.gridHeight}" 
     k-on-change="vm.handleChange(data, dataItem, columns)"></div> 
</md-content> 

Elternteil auf Änderungsereignis

public $onChanges(onChangesObj: angular.IOnChangesObject): void { 
      //this.dataList = new Array<model.member.IMembersMVLicensesResult>(); 
      if (this.memberId && this.memberId.toString().toLowerCase() != "add") { 


this.membersMVLicensesService.getByMemberId(this.memberId).then((response) => { 
       this.timeString = new Date().getTime().toString(); 
       let someValue = response; 
       this.dataList = someValue; 
       console.log(this.dataList); 
      }, (error) => { 

      }); 
     } 
    } 

Antwort

0

Der Kendo Das Ereignis "Grid Change" wird nicht ausgelöst, wenn das Grid ausgefüllt ist ("on list").

Wird ausgelöst, wenn der Benutzer eine Tabellenzeile oder Zelle im Raster auswählt.

http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-change

Das Gitter seines Databound-Ereignis ausgelöst wird, wenn das Gitter gefüllt ist. Aber es scheint nicht, dass es eine eckige Bindung für dieses Ereignis gibt ... zumindest konnte ich keins finden. Ich habe versucht k-on-dataBound und k-on-databound.

So sieht es aus wie Sie die Datasource-Ereignis in Ihrem gridOption Implementierung binden, dh:

$scope.gridOption= { 
     ... 
     dataBound: function() { 
     // your handleChange implementation 
     }, 

bearbeiten ich die Bindung gefunden ... es

ist
k-on-data-bound 

Sie können das also anstelle von k-on-change versuchen.

+0

Ich verwende es in Kendo Tabstrip nicht kendo Gitter –

+0

Aus dem bereitgestellten Code ist Ihre Kindkomponente eindeutig ein Gitter ("Kendo-Grid") und Ihr Problem wurde festgestellt, dass das Onchange-Ereignis nicht feuert, wenn Sie auflisten es. Sie haben auch keinen Tabstrip, wo auch immer Ihr Code ist. Sie müssen also ein * runnable * -Beispiel angeben, das Ihr Problem deutlich zeigt, wenn Sie Hilfe erwarten. –

Verwandte Themen