我正在尝试创建一个具有通用方法和通用onInit逻辑的基本控制器。
使用该extend方法将方法从基本控制器添加到子控制器,但生命周期方法被完全覆盖。
据我了解,扩展功能应该替换已被重写的常见方法,但它应该按各自的顺序从基本控制器和扩展控制器执行生命周期方法。
所以我的问题如下:
示例代码:
家长控制器
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("my.namespace.controller.App", {
onInit: function () {
console.log("reusable init");
},
// ...
});
});
Run Code Online (Sandbox Code Playgroud)
子控制器
sap.ui.define([
"my/namespace/controller/App.controller"
], function (Controller) {
"use strict";
return Controller.extend("my.namespace.child.controller.App", {
onInit: function () {
console.log("extend init");
},
// ...
});
});
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序时,此示例仅记录“extend init”。我希望它按此顺序记录“可重用 init”和“扩展 init”。
我省略了一些代码,但主要思想体现在这两个控制器上。唯一相关的元数据是基本控制器是抽象的。
我正在尝试运行一个应用程序来读取包含大约 22k 个字符的 JSON 的环境变量。项目设置告诉我使用$(cat ./path/to/file)正确配置它,但由于我使用的是 Windows,此命令不起作用。
我尝试使用 GUI 环境变量将文件的内容复制到变量,但其输入将值截断到某个限制,该限制甚至不在文件的一半上。之后,我尝试使用 Powershell 和以下命令设置变量:
$env:myvar = iex '$(type path/to/file)'
Run Code Online (Sandbox Code Playgroud)
然后保存结果:
[System.Environment]::SetEnvironmentVariable('MYVAR', $env:MYVAR, [System.EnvironmentVariableTarget]::Machine)
Run Code Online (Sandbox Code Playgroud)
在这些命令之后,Powershell 能够正确打印结果,但 CMD 仍然只打印部分值echo。
这很奇怪,因为注册表显示了此处建议的正确值。
应用程序仍然无法处理该值,因为它不完整。
有什么解决办法吗?