Angularjs 列表中角度子组件未触发更改事件
我有一个父组件,它进行ajax调用,并从网格后端获取数据。为了呈现网格数据,我创建了一个子组件,在其中我将列表作为in绑定传递,但每当我更改父组件中的列表时,子组件从不触发onchange事件。我的代码如下。还有一件事,我在另一个组件下使用这些父组件和子组件,这个组件使用的是蹩脚的剑道tabstrip。我之所以使用tabstrip是出于官方原因,但我只是讨厌目前所有的剑道控件,它们是为jquery设计的,但却被贴上了angular Comaptable的标签 父组件Angularjs 列表中角度子组件未触发更改事件,angularjs,kendo-ui,Angularjs,Kendo Ui,我有一个父组件,它进行ajax调用,并从网格后端获取数据。为了呈现网格数据,我创建了一个子组件,在其中我将列表作为in绑定传递,但每当我更改父组件中的列表时,子组件从不触发onchange事件。我的代码如下。还有一件事,我在另一个组件下使用这些父组件和子组件,这个组件使用的是蹩脚的剑道tabstrip。我之所以使用tabstrip是出于官方原因,但我只是讨厌目前所有的剑道控件,它们是为jquery设计的,但却被贴上了angular Comaptable的标签 父组件 <div layout
<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,因此,如果希望得到任何帮助,您必须提供一个可运行的示例,清楚地显示您的问题。