在OpenUI5 demokit 的1.5.2.3定义绑定路径部分中:
在聚合绑定的情况下,对于聚合的每个条目都存在上下文,或者可以使用setBindingContext方法为控件显式设置上下文.
在OpenUI5 demokit的1.5.3.3元素绑定部分中:
元素绑定允许将元素绑定到模型数据中的特定对象,这将创建绑定上下文并允许控件及其所有子元素之间的相对绑定.
在我看来,这两种技术实际上做同样的事情.它们都为控件创建绑定上下文,以便包含控件的绑定将相对于它进行解析.但它们之间的区别是什么?在什么情况下他们中的任何一个会发挥作用?
该setBindingContext不会在下面的代码工作:
https://jsbin.com/bigope/edit?html,output
但是,如果我改变oPanel.setBindingContext("/ nameinfo"); to oPanel.bindElement("/ nameinfo"); ,它有效,为什么?
反正我们可以将现有主题及其控件覆盖为自定义字体吗?
问题:我可以使用自定义字体覆盖全局字体,但我不能覆盖每个控件字体,因为所有控件都分配了自己的Font属性,而不是从全局继承.
有解决方案吗
我想将一个JSON对象从一个控制器传递给另一个控制器.我怎么做?
或者我可以将oModel传递给另一个视图吗?如果是这样,我该怎么做?
谢谢
我有一个问题,我创建了一个新的SAPUI5应用程序,现在想使用sap.ui.getCore().byId(id)来访问现有的控件.在同一个控制器/视图中,我可以通过this.byId(id)访问它们,但是为了访问其他文件(例如控制器)中的控件,我需要sap.ui.getCore().byId(id).
但是,当sap.ui.getCore()返回一个核心对象时,我无法通过它的byId()函数访问控件(返回"undefined").
有什么我必须配置为这个工作?
我已经使用SAPUI5构建了一个应用程序,我对这个函数调用没有任何问题.有人有想法吗?谢谢!
自 SAPUI5 1.28.20 升级以来,我收到以下错误消息:
共享模板必须在绑定信息中用 templateShareable:true 标记
代码在 MangedObject.js 中,如下所示:
} else if ( oBindingInfo.templateShareable === MAYBE_SHAREABLE_OR_NOT ) {
// a 'clone' operation implies sharing the template (if templateShareable is not set to false)
oBindingInfo.templateShareable = oCloneBindingInfo.templateShareable = true;
jQuery.sap.log.error("A shared template must be marked with templateShareable:true in the binding info");
}
Run Code Online (Sandbox Code Playgroud)
的oBindingInfo.templateShareable值为true,值为MAYBE_SHAREABLE_OR_NOT1。
根据文档,默认oBindingInfo.templateShareable为true.
那么这里有什么问题呢?库中的错误?或者我的代码有什么问题?另见:https : //sapui5.netweaver.ondemand.com/sdk/#docs/api/symbols/sap.ui.base.ManagedObject.html
在 1.32.x 版本中,消息已更改,现在为:
模板在绑定中被重用,但已被标记为要销毁的候选对象。您最好在绑定配置中使用 templateShareable:true 声明这样的用法。——
但根据文档,默认值仍应为 true: …
如何在 SapUI5 中构建一个 XML 视图来遍历 JSONModel 中的所有元素?
到目前为止,我有一个控制器:
sap.ui.define([
"sap/ui/core/mvc/Controller",
"sap/ui/model/json/JSONModel"
], function (Controller, JSONModel) {
"use strict";
return Controller.extend("sap.ui.demo.myApp.myController", {
onInit: function () {
//// set data model on view
var oData = {
title: "A cool title",
values: [{name: "Text 1"}, {name: "Text 2"}, {name: "Text 3"}]
};
var oModel = new JSONModel(oData);
this.getView().setModel(oModel);
}
});
});
Run Code Online (Sandbox Code Playgroud)
和一个视图:
<mvc:View
controllerName="sap.ui.demo.myApp.myController"
xmlns="sap.m"
>
<Panel expandable="true" expanded="true" headerText="{/title}" width="100%">
<content>
<!-- how to iterate over {/values} …Run Code Online (Sandbox Code Playgroud) 是否可以将控制属性绑定到具有动态属性名称的模型,例如,存储在另一个模型字段中?我认为我们可以为此目的使用SAPUI5 Expression Binding,但它不起作用:跟踪窗口中的绑定被破坏,表达式似乎根本没有被评估.
XML视图
<TextArea value="{= ${StackOverflow>/bindTextAreaTo} }" />
Run Code Online (Sandbox Code Playgroud)
调节器
oModel = this.getView().getModel("StackOverflow");
/*
* The model have two properties: question and comment
* I want value of TextArea to be bound to one of them based on some condition
*/
oModel.setProperty("/question", "");
oModel.setProperty("/comment", "");
oModel.setProperty("/bindTextAreaTo",
bAsk ? "StackOverflow>/question" : "StackOverflow>/comment" );
Run Code Online (Sandbox Code Playgroud) 我有一个带有此视图的 UIComponent:
<mvc:View controllerName="my.components.webmap.controller.Map"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:html="http://www.w3.org/1999/xhtml">
<html:div id='myDiv' style='height:inherit'></html:div>
<Button id="helloWorld" text="Say Hello" press=".onShowHello" />
</mvc:View>
Run Code Online (Sandbox Code Playgroud)
在视图控制器中,我可以从
this.getView().byId("helloWorld").sId
Run Code Online (Sandbox Code Playgroud)
但我无法使用该byId()方法获取 div 的 ID 。
<mvc:View controllerName="my.components.webmap.controller.Map"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.m"
xmlns:html="http://www.w3.org/1999/xhtml">
<html:div id='myDiv' style='height:inherit'></html:div>
<Button id="helloWorld" text="Say Hello" press=".onShowHello" />
</mvc:View>
Run Code Online (Sandbox Code Playgroud)
如何获取 div 的 ID 以访问该元素?我需要 div 的 ID,所以我可以向它附加一些额外的 3rd 方控件。
我正在尝试使用 Amazon ses.sendEmail 在电子邮件中附加 pdf。但我不知道这样做的参数键。没有附件,它工作得很好。这是我尝试过的。
` var ses = new AWS.SES()
var params = {
Destination: {
ToAddresses: [
'xxx',
]
},
Message: {
Body: {
Html: {
Data: msg,
Charset: 'UTF-8'
}
},
Subject: { /* required */
Data: 'Test Mail',
Charset: 'UTF-8'
}
},
Attachment:{
},
Source: 'yyy'
};
ses.sendEmail(params, function(err, data) {
if (err) {// an error occurred}
oDialog.close();
MessageToast.show("Email not sent. Some problem occurred!");
}
else {
oDialog.close();
MessageToast.show("Email sent successfully!");
}
});`
Run Code Online (Sandbox Code Playgroud) 我有一个要求,通过传递名称,它应该返回一个头像图标,其中包含该名称中包含的单词的第一个字母。例如:如果我通过 John Abraham,它应该返回一个带有“JA”的图标。
我需要在 SAPUI5 控件中使用该图标。我对此没有任何想法。如何实施?任何帮助表示赞赏。
sapui5 ×10
data-binding ×2
javascript ×2
amazon-ses ×1
css ×1
fonts ×1
html ×1
jquery ×1
sap ×1
themes ×1
xml ×1