Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 列表中角度子组件未触发更改事件_Angularjs_Kendo Ui - Fatal编程技术网

Angularjs 列表中角度子组件未触发更改事件

Angularjs 列表中角度子组件未触发更改事件,angularjs,kendo-ui,Angularjs,Kendo Ui,我有一个父组件,它进行ajax调用,并从网格后端获取数据。为了呈现网格数据,我创建了一个子组件,在其中我将列表作为in绑定传递,但每当我更改父组件中的列表时,子组件从不触发onchange事件。我的代码如下。还有一件事,我在另一个组件下使用这些父组件和子组件,这个组件使用的是蹩脚的剑道tabstrip。我之所以使用tabstrip是出于官方原因,但我只是讨厌目前所有的剑道控件,它们是为jquery设计的,但却被贴上了angular Comaptable的标签 父组件 <div layout

我有一个父组件,它进行ajax调用,并从网格后端获取数据。为了呈现网格数据,我创建了一个子组件,在其中我将列表作为in绑定传递,但每当我更改父组件中的列表时,子组件从不触发onchange事件。我的代码如下。还有一件事,我在另一个组件下使用这些父组件和子组件,这个组件使用的是蹩脚的剑道tabstrip。我之所以使用tabstrip是出于官方原因,但我只是讨厌目前所有的剑道控件,它们是为jquery设计的,但却被贴上了angular Comaptable的标签

父组件

<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>

我的孩子组件

<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) => {

            });
        }
    }
public$onChanges(onchangesbj:angular.ionchangesbject):void{
//this.dataList=新数组();
if(this.memberId&&this.memberId.toString().toLowerCase()!=“添加”){
this.membersMVlicenseService.getByMemberId(this.memberId)。然后((响应)=>{
this.timeString=new Date().getTime().toString();
让someValue=响应;
this.dataList=someValue;
console.log(this.dataList);
},(错误)=>{
});
}
}

填充网格(“列表中”)时不会触发剑道网格更改事件

当用户选择网格中的表行或单元格时激发

填充网格时,网格将触发其数据绑定事件。 但是,这件事似乎没有角度上的约束……至少我还没找到。我试过k-on-dataBound和k-on-dataBound

因此,看起来您必须在gridOption实现中绑定dataSource事件,即:

$scope.gridOption= {
      ...
      dataBound: function() {
        // your handleChange implementation
      },
编辑 我找到了装订……是的

k-on-data-bound

因此,您可以尝试这样做,而不是k-on-change。

填充网格(“列表上”)时不会触发剑道网格更改事件

当用户选择网格中的表行或单元格时激发

填充网格时,网格将触发其数据绑定事件。 但是,这件事似乎没有角度上的约束……至少我还没找到。我试过k-on-dataBound和k-on-dataBound

因此,看起来您必须在gridOption实现中绑定dataSource事件,即:

$scope.gridOption= {
      ...
      dataBound: function() {
        // your handleChange implementation
      },
编辑 我找到了装订……是的

k-on-data-bound

因此,您可以尝试使用它,而不是k-on-change。

我在剑道选项卡STRIP not kendo GRIDE中使用它。根据提供的代码,您的子组件显然是一个网格(“剑道网格”),您的问题已经说明,当您列出它时,onchange事件没有触发。你的代码中的任何地方都没有tabstrip,因此,如果你希望得到任何帮助,你必须提供一个可运行的示例,清楚地显示你的问题。我在剑道tabstrip而不是剑道网格中使用它。根据提供的代码,你的子组件显然是一个网格(“剑道网格”)您的问题已经说明,当您列出onchange事件时,它不会触发。代码中的任何地方都没有tabstrip,因此,如果希望得到任何帮助,您必须提供一个可运行的示例,清楚地显示您的问题。