当我转到特定模式时,我想更改应用程序标题(标签上显示的标题)。 我在index.html中设置标题。你有什么想法吗?
答案 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));