Angular子组件未在列表上触发更改事件

时间:2016-12-16 13:24:34

标签: angularjs kendo-ui

我有一个父组件进行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) => {

            });
        }
    }

1 个答案:

答案 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。