基本的 openUI5 拆分视图应用程序
Basic openUI5 Split View App
我希望使用 openUI5/SAPUI5 设置两个窗格拆分器视图
我的代码如下:
index.html
<!DOCTYPE html>
<html><head>
meta http-equiv='X-UA-Compatible' content='IE=edge' />
<title>Hello World</title>
<script id='sap-ui-bootstrap'
src='resources/sap-ui-core.js'
data-sap-ui-theme='sap_bluecrystal'
data-sap-ui-libs='sap.m'>
</script>
<script>
//Set an object
var myView = sap.ui.xmlview("Splitter");
// put the View onto the screen
myView.placeAt('content');
</script>
</head>
<body class='sapUiBody'>
<div id='content'></div>
</body>
</html>
Splitter.controller.js:
sap.ui.controller("Splitter", {
onInit: function () {
}
});
Splitter.view.xml:
<mvc:View
controllerName="Splitter"
xmlns:l="sap.ui.layout"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.ui.commons">
<l:Splitter height="500px">
<Button height="100%" width="100%" text="Content 1">
<layoutData><l:SplitterLayoutData size="30%" resizable="false"/></layoutData>
</Button>
<Button height="100%" width="100%" text="Content 2">
<layoutData><l:SplitterLayoutData size="auto" /></layoutData>
</Button>
</l:Splitter>
</mvc:View>
但是,我的页面上没有任何显示,在我的 Chrome 开发工具中我有以下错误:
'Uncaught TypeError: undefined is not a function' index.html 第 13 行,我认为的设置。
库设置正确并且正在链接。
我猜它无法加载您的视图,因此调用了未定义的 placeAt
。你应该让 UI5-Framework 知道你的本地资源。否则它将尝试从 "ressources" 文件夹中获取所有资源(如视图、实用程序),这在您的情况下是不正确的。一个经常使用的项目结构如下所示:
WebContent
| index.html
| view
| Splitter.controller.js
| Splitter.view.js
当然你可以给文件夹起不同的名字。如果我将此模式和下面的代码应用到您的项目中,它对我有用。
index.html
<script src="resources/sap-ui-core.js" id="sap-ui-bootstrap"
data-sap-ui-libs="sap.m,sap.ui.layout,sap.ui.commons"
data-sap-ui-theme="sap_bluecrystal">
</script>
<!-- load "sap.m", "sap.ui.layout" and "sap.ui.commons" as you´re using them in your view -->
<script>
// make the framework aware of your ressource folder:
sap.ui.localResources("view");
// instantiate your view by its full qualified name:
var myView = sap.ui.xmlview("view.Splitter");
// put the View onto the screen
myView.placeAt('content');
</script>
控制器(位于view/Splitter.controller.js)
sap.ui.controller("view.Splitter", {
onInit: function() {
}
});
查看(位于view/Splitter.view.xml)
<mvc:View
controllerName="view.Splitter"
xmlns:l="sap.ui.layout"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.ui.commons">
<l:Splitter height="500px">
<Button height="100%" width="100%" text="Content 1">
<layoutData><l:SplitterLayoutData size="30%" resizable="false"/></layoutData>
</Button>
<Button height="100%" width="100%" text="Content 2">
<layoutData><l:SplitterLayoutData size="auto" /></layoutData>
</Button>
</l:Splitter>
</mvc:View>
我认为你应该使用 sap.ui.core.mvc.xmlview("Splitter")
而不是 sap.ui.xmlview("Splitter")
;
我希望使用 openUI5/SAPUI5 设置两个窗格拆分器视图
我的代码如下:
index.html
<!DOCTYPE html>
<html><head>
meta http-equiv='X-UA-Compatible' content='IE=edge' />
<title>Hello World</title>
<script id='sap-ui-bootstrap'
src='resources/sap-ui-core.js'
data-sap-ui-theme='sap_bluecrystal'
data-sap-ui-libs='sap.m'>
</script>
<script>
//Set an object
var myView = sap.ui.xmlview("Splitter");
// put the View onto the screen
myView.placeAt('content');
</script>
</head>
<body class='sapUiBody'>
<div id='content'></div>
</body>
</html>
Splitter.controller.js:
sap.ui.controller("Splitter", {
onInit: function () {
}
});
Splitter.view.xml:
<mvc:View
controllerName="Splitter"
xmlns:l="sap.ui.layout"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.ui.commons">
<l:Splitter height="500px">
<Button height="100%" width="100%" text="Content 1">
<layoutData><l:SplitterLayoutData size="30%" resizable="false"/></layoutData>
</Button>
<Button height="100%" width="100%" text="Content 2">
<layoutData><l:SplitterLayoutData size="auto" /></layoutData>
</Button>
</l:Splitter>
</mvc:View>
但是,我的页面上没有任何显示,在我的 Chrome 开发工具中我有以下错误:
'Uncaught TypeError: undefined is not a function' index.html 第 13 行,我认为的设置。
库设置正确并且正在链接。
我猜它无法加载您的视图,因此调用了未定义的 placeAt
。你应该让 UI5-Framework 知道你的本地资源。否则它将尝试从 "ressources" 文件夹中获取所有资源(如视图、实用程序),这在您的情况下是不正确的。一个经常使用的项目结构如下所示:
WebContent
| index.html
| view
| Splitter.controller.js
| Splitter.view.js
当然你可以给文件夹起不同的名字。如果我将此模式和下面的代码应用到您的项目中,它对我有用。
index.html
<script src="resources/sap-ui-core.js" id="sap-ui-bootstrap"
data-sap-ui-libs="sap.m,sap.ui.layout,sap.ui.commons"
data-sap-ui-theme="sap_bluecrystal">
</script>
<!-- load "sap.m", "sap.ui.layout" and "sap.ui.commons" as you´re using them in your view -->
<script>
// make the framework aware of your ressource folder:
sap.ui.localResources("view");
// instantiate your view by its full qualified name:
var myView = sap.ui.xmlview("view.Splitter");
// put the View onto the screen
myView.placeAt('content');
</script>
控制器(位于view/Splitter.controller.js)
sap.ui.controller("view.Splitter", {
onInit: function() {
}
});
查看(位于view/Splitter.view.xml)
<mvc:View
controllerName="view.Splitter"
xmlns:l="sap.ui.layout"
xmlns:core="sap.ui.core"
xmlns:mvc="sap.ui.core.mvc"
xmlns="sap.ui.commons">
<l:Splitter height="500px">
<Button height="100%" width="100%" text="Content 1">
<layoutData><l:SplitterLayoutData size="30%" resizable="false"/></layoutData>
</Button>
<Button height="100%" width="100%" text="Content 2">
<layoutData><l:SplitterLayoutData size="auto" /></layoutData>
</Button>
</l:Splitter>
</mvc:View>
我认为你应该使用 sap.ui.core.mvc.xmlview("Splitter")
而不是 sap.ui.xmlview("Splitter")
;