我尝试使用UI5的组件概念,并且刚刚构建了以下内容:
Index.html代码段
<script src="resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-libs="sap.m"
data-sap-ui-theme="sap_bluecrystal"
data-sap-ui-resourceroots='{
"sap.ui.ui5test.myapp": "./"
}'>
</script>
<!-- only load the mobile lib "sap.m" and the "sap_bluecrystal" theme -->
<script>
new sap.m.Shell({
app : new sap.ui.core.ComponentContainer({
name : "sap.ui.ui5test.myapp"
})
}).placeAt("content");
</script>
Component.js片段:
jQuery.sap.declare("sap.ui.ui5test.myapp.Component");
sap.ui.core.UIComponent.extend("sap.ui.ui5test.myapp.Component", {
createContent : function() {
var oView = new sap.ui.core.mvc.View({
id : "testview",
name : "sap.ui.ui5test.myapp.views.FirstView",
type : "JS",
viewData : {component : this}
});
var jsonModel = new sap.ui.model.json.JSONModel();
jsonModel.loadData('http://api.openweathermap.org/data/2.5/weather?q=Auckland');
//jsonModel.loadData('http://api.openweathermap.org/data/2.5/group?id=524901,703448,2643743&units=metric');
sap.ui.getCore().setModel(jsonModel);
oView.setModel(jsonModel);
}
});
在上面的component.js片段中,如果我将视图返回为返回oView;它给了我一个错误说&#34; Uncaught TypeError:undefined不是函数&#34;。一旦我删除return语句就会消失。
如果我不返回视图,它会导航到我在上面实例化和加载的视图吗?正如我在chrome开发人员工具中看到的那样,我似乎没有找到FirstView打开它的js文件,因为我认为它没有被加载。
请建议如何纠正此问题以及如何进一步导航。
急切地等待你的快速反应。
干杯, AW
答案 0 :(得分:1)
我检查了你的FirstView.js。请在退货声明中执行以下操作:
return this.app;
由于没有名为app的本地变量,如果您编写返回应用,则应用未定义。
请在createContent方法中使用sap.ui.view:
var oView = new sap.ui.view({
id : "testview",
viewName : "sap.ui.ui5test.myapp.views.FirstView",
type : "JS",
viewData : {component : this}
});