小编Leo*_*mos的帖子

UI5 控制器和生命周期方法的扩展

我正在尝试创建一个具有通用方法和通用onInit逻辑的基本控制器。

使用该extend方法将方法从基本控制器添加到子控制器,但生命周期方法被完全覆盖

  • 我尝试使用此文档页面override.onInit上显示的方法,但它不起作用。
  • 我也尝试过sap.ui.component 这样的操作,但我根本无法让它工作。
    我不确定它是否适用于 AMD 语法。

据我了解,扩展功能应该替换已被重写的常见方法,但它应该按各自的顺序从基本控制器和扩展控制器执行生命周期方法。

所以我的问题如下:

  1. 这种行为可能实现吗?如果是这样,我做错了什么?
  2. 有没有更好的方法来实现呢?

示例代码:

家长控制器

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”。

我省略了一些代码,但主要思想体现在这两个控制器上。唯一相关的元数据是基本控制器是抽象的。

inheritance sapui5

4
推荐指数
1
解决办法
4496
查看次数

环境变量无法正常工作

我正在尝试运行一个应用程序来读取包含大约 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

这很奇怪,因为注册表显示了此处建议的正确值。

应用程序仍然无法处理该值,因为它不完整。

有什么解决办法吗?

windows powershell environment-variables

1
推荐指数
1
解决办法
2722
查看次数