因此,发生的事情是在网格中创建新行之后,需要访问组件中的其他信息。通常,我将使用“ this.method”或“ this.property”访问它们,但是,在创建新行之后,“ this”不再引用组件,而是引用网格。我有多种原因可以“脱离”网格并访问我的组件,但是却不知道如何操作。
@Component({
selector: 'my',
templateUrl:
<kendo-grid
id="myGrid"
[kendoGridBinding]="postingGridData"
[kendoGridTemplateEditing]="addNewPost"
(save)="saveHandler($event)"
(remove)="removeHandler($event)">
<ng-template kendoGridToolbarTemplate>enter code here
<button kendoGridAddCommand id="addNewPost">Add new</button>
</ng-template>
</kendo-grid>
})
export class MyComponent{
// random property to access
public num: number;
// create new grid row
addNewPost(): void{
let thisNumber = this.num;
this.doThisMethod();
}
// another method on the component
doThisMethod(): void{
doSomething
}
}`
答案 0 :(得分:0)
您非常接近。您需要为Kendo网格定义 addHandler 。完成后,您将可以访问 doThisMethod 中的 this 。
我创建了一个Stackblitz Example。这是您的代码和CommandColumnComponent的Kendo文档的混搭。运行Stackblitz时,您将看到组件如何访问 doThisMethod 函数中的 this.num 属性。 This页也可以为您提供帮助。希望这会有所帮助。
答案 1 :(得分:0)
所以发生的事情是,当您在网格中具有[kendoGridTemplateEditing]时,它会自动为您自动处理添加/取消/删除/编辑功能,因此,在其中一个功能中,“ this”现在是指该指令。解决方法是将“ this”绑定到构造函数中的方法。
constructor() {
this.addNewPost= this.addNewPost.bind(this);
}