当我查看SAPUI5网站上的Developer Guide时,这是他们声明XML视图的方式:
<mvc:View
xmlns="sap.m"
xmlns:mvc="sap.ui.core.mvc" controllerName="">
</mvc:View>
控制器的定义如下:
sap.ui.define([
"sap/ui/core/mvc/Controller"
], function (Controller) {
"use strict";
return Controller.extend("", {
});
});
但是,当我在Eclipse中创建SAPUI5项目并使用选项 New &gt; SAPUI5应用程序开发&gt; 查看,它会创建一个视图和一个如下所示的控制器:
<core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
controllerName="" xmlns:html="http://www.w3.org/1999/xhtml">
</core:View>
sap.ui.controller("", {
});
一方面,以上述方式创建视图使我无法每次都输入基本语法。然而另一方面,开发人员指南(尤其是控制器)中的语法看起来更有条理。
为什么我应该使用一种或另一种语法?或者我可以使用任何一种方法而没有任何编程差异吗?
我正在使用v1.32进行开发。
答案 0 :(得分:3)
第一种语法(sap.ui.define
)是首选语法。它也称为AMD(异步模块声明)语法(请参阅this Wiki article for more information)。它在启用
实现此语法的一个库是RequireJS,它也嵌入到SAPUI5(和OpenUI5 ofc)中。
在他们关于控制库的文档中,SAPUI5团队还推荐了AMD语法(参见here)。 sap.m
和sap.ui
包中的所有控件(我已经检查过)都使用AMD语法。
您还可以阅读this interesting blog post from DJ Adams。
然而,没有声明(afaik)第二种语法已被弃用。但请记住,它是由Eclipse自动生成的,因为它(UI5插件)很少被维护,因此不是最新的(他们更喜欢使用Node.js
+ grunt
+ {{1 }})。
通过执行Sublime/Visual Studio Code/etc
(在var Controller = sap.ui.core.mvc.Controller
模块之后)