Javascript OpenUI5/SAPUI5中表达式绑定中的函数调用

Javascript OpenUI5/SAPUI5中表达式绑定中的函数调用,javascript,templates,binding,sapui5,Javascript,Templates,Binding,Sapui5,问题是使用1.28引入的方法打印当前年份 表达式绑定能够执行全局可访问的JS函数 目标:在表达式绑定中执行(new Date()).getFullYear() 第一次尝试是执行一个全局字符串{:=Math.PI}=>works 第二次尝试是定义一个全局函数window.temp=function(){return'test'}并通过=>失败执行它 目标破坏了解析器,并位于JSFIDLE中。 错误消息是预期的),但在位置9处看到了日期-{:=(新日期()).getFullYear()}sap.u

问题是使用1.28引入的方法打印当前年份

表达式绑定能够执行全局可访问的JS函数

目标:在表达式绑定中执行(new Date()).getFullYear()

  • 第一次尝试是执行一个全局字符串{:=Math.PI}=>works
  • 第二次尝试是定义一个全局函数
    window.temp=function(){return'test'}并通过
    =>失败执行它
  • 目标
    破坏了解析器,并位于JSFIDLE中。 错误消息是预期的),但在位置9处看到了日期-{:=(新日期()).getFullYear()}sap.ui.base.ExpressionParser
第一个问题是:为什么解析器会崩溃?是虫子还是我做错了什么


第二个问题是:即使目标不可能实现。为什么我的第二次尝试也不起作用?

我假设解析器会中断,因为它不支持new操作符。您的第二个示例不是只使用通过全局符号可用的函数。窗口对象未在此处列出。

Re“只能使用通过全局符号可用的函数”:如果有文档记录,那就太好了。在我找到你的答案之前,我已经花了很长时间在这个问题上。嗨,彼得,这是有记录的。从syntax元素函数调用的文档中可以看到:“您可以使用通过全局符号提供的函数,例如Math.max(…)或isNaN(…)。”您好,matbtt并不是在语义上吹毛求疵,但它不像您的答案那样有“only”一词。我想这似乎是一个合理的推断,但老实说,我在寻找答案之前阅读了这些文档,得到的印象是,这更多的是一个如何使用它的建议,而不是一个限制。嗨,彼得,好的,我理解。