转到特定模式时更改应用程序标题

时间:2018-06-05 08:17:11

标签: sapui5

当我转到特定模式时,我想更改应用程序标题(标签上显示的标题)。 我在index.html中设置标题。你有什么想法吗?

2 个答案:

答案 0 :(得分:3)

对于此用例,框架添加了title [1] 属性,该属性可以分配给每个路由目标对象:

manifest.json

"targets": {
  "target1": {
    "viewPath": "...",
    "viewName": "...",
    "title": "My Awesome Products!!"
  },
  //...
},

然而,仅在目标显示时,这不足以更新标题。要执行此操作,请收听事件titleChanged [API] 并从事件中获取参数"title",然后将其分配给{{1} } attribute:

Component.js

document.title

您甚至可以将模型数据绑定到init: function() { // ... this.getRouter().attachTitleChanged(this.onTitleChanged.bind(this)); }, onTitleChanged: function(event) { document.title = event.getParameter("title"); // returns: "My Awesome Products!!" }, 属性(例如,用于i18n),访问以前使用过的标题等等。请查看主题Using the title Property in Targets

如果将多个目标分配给单个路径

通常,路线采用在其相应目标中定义的标题。但是,如果将多个目标分配给单个路径(例如,显示主 - 详细视图),则考虑第一个定义的标题。但是,如果两个目标都定义了title,那么路由可以明确地声明它应该采用title的目标,这可以通过将目标名称分配给title属性来实现:

manifest.json

titleTarget

[1] 可用since 1.42

答案 1 :(得分:0)

你能做的是这样的事情:

第一个控制器

    onInit: function() {
        sap.ui.core.UIComponent.getRouterFor(this).getRoute("list").attachPatternMatched(this._onListRouteMatched, this);
    },

    _onListRouteMatched: function(oEvent){
        document.title = "test title";
    },

第二个控制器

CloudBlockBlob blob_xslt = blobClient.GetContainerReference("containerName").GetBlockBlobReference("file_xslt.xslt");
CloudBlockBlob blob_xml = blobClient.GetContainerReference("ContainerName").GetBlockBlobReference("file_xml.xml");
StringBuilder stringBuilder = new StringBuilder();
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(blob_xslt.Uri.ToString()); // Cant Able to load that blob here .. 
xslt.Transform(blob_xml.StorageUri.ToString(), XmlWriter.Create(stringBuilder));