我有一个父组件进行ajax调用,并从后端获取网格数据。为了渲染网格数据,我创建了一个子组件,我将列表作为in绑定传递,但每当我在父组件中更改列表时,子组件永远不会触发onchange事件。我的代码如下。我还在另一个使用shitty kendo tabstrip的组件下使用这些父组件和子组件。我正在使用tabtrip是出于官方原因,但我只是讨厌所有的kendo控件,因为它们是专为jquery设计的,但是以带有角度的可标记的标签出售
父组件
<div layout="column">
<md-content>
<div layout="row">
<member-mvlicense-grid member-id="vm.memberId"></member-mvlicense-grid>
</div>
</md-content>
</div>
我的孩子组件
<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>
变更事件的父母
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) => {
});
}
}
答案 0 :(得分:0)
当填充网格时(“列表中”),剑道网格更改事件不会触发。
当用户选择网格中的表格行或单元格时触发。
http://docs.telerik.com/kendo-ui/api/javascript/ui/grid#events-change
当填充网格时,Grid会触发其dataBound事件。 但是,似乎这个事件没有角度绑定......至少我找不到一个。我已经尝试过k-on-dataBound和k-on-databound。
因此,您似乎必须在gridOption实现中绑定dataSource事件,即:
$scope.gridOption= {
...
dataBound: function() {
// your handleChange implementation
},
修改强> 我找到了绑定......它是
k-on-data-bound
所以你可以尝试而不是k-on-change。