gpt4 book ai didi

javascript - 比 this.View.Parent.Parent.Parent.oParent.setModel(foo, bar) 更好的方法?

转载 作者:行者123 更新时间:2023-11-28 19:27:01 26 4
gpt4 key购买 nike

我想从我的组件 Controller 之一将 jsonModel 设置为我的 SAPUI5 组件。在组件内,我使用应用程序或 splitapp。

我想避免通过 ID 获取元素。从组件内的某个位置获取层次结构中最接近的“__ComponentX”对象的最佳方法是什么,这样无论我有多深的“oParent”级别,这都是有效的,这样我就可以在每个组件中使用相同的函数?

我应该要求对象返回一个 oParent,只要它不返回 null,还是有一种更快的方法,在运行时花费更少的时间?

请让我澄清一下:我不希望我的子组件更改我的父组件,但我正在谈论我的组件内的 DOM 树层次结构。我的DOM树从上到下如下(按sId):__component0,__jsview0,__app0,__app0-Master,__jsview1。我想要一个函数来访问__component0,无论是我从 __jsview0、__app0 或 __jsview1 调用它。

最佳答案

每个组件都应该在自己的沙箱中运行。因此,子组件不应该负责访问和设置其父组件的模型。如果组件紧密耦合或确实有必要,则应通过事件处理此类通信。例如

// Fire ModelNeeded event on the control tree to inform responsible component
this.fireEvent("ModelNeeded", { modelName : "whatever" }, false, true);

并且 componentX 应该监听它。

this.attachEvent("ModelNeeded", function(oEvent) {
var sModelName = oEvent.getParameter("modelName");
var oModel = createModel();
this.setModel(oModel, sModelName);
oEvent.stopPropagation();
});

关于javascript - 比 this.View.Parent.Parent.Parent.oParent.setModel(foo, bar) 更好的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27686394/

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