gpt4 book ai didi

javascript - sap.m.Table 工厂函数与 "this" View 上下文

转载 作者:太空宇宙 更新时间:2023-11-04 16:09:20 24 4
gpt4 key购买 nike

如何将 View 绑定(bind)到 sap.m.Table 的工厂函数中?

表的声明方式如下:

<Table id="responsivetreetable" headerText="Collections" mode="SingleSelectMaster" 
items="{ path:'/', model:'CollectionTree', factory:'.collectionTreeFactory'}">

在 Controller 中我以这种方式实现了 collectionTreeFactory 函数:

collectionTreeFactory: function(id, context) {

在工厂函数内部,当我使用变量 this 时,它指的是工厂上下文而不是 View 上下文。我怎样才能实现这个目标?我的第一个想法是使用 .bind(this) 函数,但我没有找到任何有关如何在 xml View 之外执行工厂函数的文档。

谢谢大家。

最佳答案

通常工厂函数this会自动绑定(bind)到 Controller 。您可以查看他的 fiddle (查看控制台以查看 this 值):https://jsfiddle.net/93mx0yvt/33/ .

尽管如此,您可以从 Controller 内绑定(bind)表的项目聚合,并将所需的任何函数作为工厂函数传递。正如您所说,您可以使用 .bind 函数显式地为 this 上下文设置一个值。您可以在此处找到示例:https://jsfiddle.net/93mx0yvt/34/ .

相关代码片段是这样的:

oTable.bindItems({
path: "/",
model: "CollectionTree",
factory: this.collectionTreeFactory.bind(this)
});

查看 bindAggregation documentation了解更多详细信息(bindItems 只是 bindAggregation("items", ...) 的简写)。

关于javascript - sap.m.Table 工厂函数与 "this" View 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com