如何调用使用sap.ui.require句的对象
How to call objects that uses sap.ui.require sentence
我一直在检查最新的 openui5 文档,我看到有一个 "new way" 创建 类。
所以现在,使用 sap.ui.define 我们可以像下面这样以 AMD 方式创建 类 -
sap.ui.define(['jquery.sap.global', 'sap/ui/base/Object'],
function(jQuery, Object) {
"use strict";
var foo = Object.extend("Foo", {
metadata : {
properties : {}
}
});
foo.prototype.someFunction = function(){};
return foo;
},true);
问题是我不确定如何从控制器中调用这种 类。我想在控件中使用 AMD 语法,但我还没有找到任何示例 -
(function() {
'use strict';
sap.ui.controller('settings.mvc.controller.App', {
onInit: function() {
//Foo is always undefined
},
});
})();
我想你要找的是sap.ui.require()
:
https://github.com/SAP/openui5/blob/master/src/sap.ui.core/src/jquery.sap.global.js#L2488
(注意与 jQuery.sap.require()
的区别!)
这个功能是新的,在当前的稳定版本 1.26 中还没有,但是一旦下一个 beta 预览版出来(或者当你自己构建 UI5 时),你可以这样写:
sap.ui.require(['Foo'], function(Foo) {
Foo.someFunction();
});
这是 sap.ui.define() 的对称对应物并且异步工作,所以我想这就是您要找的东西。
(我假设你的问题是关于从另一个文件加载 Foo 的,因为当写在一个文件中时,它已经被定义了:
http://jsbin.com/lagiviyoja/1/edit?html,output)
我一直在检查最新的 openui5 文档,我看到有一个 "new way" 创建 类。
所以现在,使用 sap.ui.define 我们可以像下面这样以 AMD 方式创建 类 -
sap.ui.define(['jquery.sap.global', 'sap/ui/base/Object'],
function(jQuery, Object) {
"use strict";
var foo = Object.extend("Foo", {
metadata : {
properties : {}
}
});
foo.prototype.someFunction = function(){};
return foo;
},true);
问题是我不确定如何从控制器中调用这种 类。我想在控件中使用 AMD 语法,但我还没有找到任何示例 -
(function() {
'use strict';
sap.ui.controller('settings.mvc.controller.App', {
onInit: function() {
//Foo is always undefined
},
});
})();
我想你要找的是sap.ui.require()
:
https://github.com/SAP/openui5/blob/master/src/sap.ui.core/src/jquery.sap.global.js#L2488
(注意与 jQuery.sap.require()
的区别!)
这个功能是新的,在当前的稳定版本 1.26 中还没有,但是一旦下一个 beta 预览版出来(或者当你自己构建 UI5 时),你可以这样写:
sap.ui.require(['Foo'], function(Foo) {
Foo.someFunction();
});
这是 sap.ui.define() 的对称对应物并且异步工作,所以我想这就是您要找的东西。
(我假设你的问题是关于从另一个文件加载 Foo 的,因为当写在一个文件中时,它已经被定义了: http://jsbin.com/lagiviyoja/1/edit?html,output)