为什么我在下面的代码中使用oApp作为全局变量,尽管我没有通过使用AppContext并将其附加到核心将其声明为一个

时间:2019-07-25 14:48:52

标签: javascript global-variables sapui5

我想知道下面函数中的oApp如何成为全局变量?

我尝试调试它和Google搜索,但是找不到正确的答案。我在这里附加index.html,这是我声明了oApp的唯一文件(我的意思是尽管没有声明,但我应该在其中声明)其他文件正在使用它。所以是的,我确实需要使它成为全局的,但是我不明白的是为什么它会自动变为全局。

<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="X-UA-Compatible" content="IE=Edge">
        <meta charset="UTF-8">
        <title>My Pets</title>
        <script id='sap-ui-bootstrap'
            src='https://sapui5.hana.ondemand.com/resources/sap-ui-core.js'
            data-sap-ui-theme='sap_bluecrystal'
            data-sap-ui-libs='sap.m, sap.ui.layout'
            data-sap-ui-async="true"
            data-sap-ui-preload="async"
            data-sap-ui-compatVersion="edge"
            data-sap-ui-resourceroots='{"sapui5.archi.mvcapp":"./webapp/"}'>   
        </script>
        <script>
            sap.ui.getCore().attachInit(function (){

                var oData={
                "countpets" :"2",
                "pets" :[
                    {
                        "ID":0,
                        "Name":"Akira",
                        "Details":{
                            "Type":"Cat",
                            "Age":5,
                            "Color":"Grey",
                            "ZipCode":"122002",
                            "Country":"India"
                        }
                    },
                    {
                        "ID":1,
                        "Name":"Milo",
                        "Details":{
                            "Type":"Dog",
                            "Age":7,
                            "Color":"Brown",
                            "ZipCode":"248001",
                            "Country":"India"
                        }
                    }]
            };

            var oModel=new sap.ui.model.json.JSONModel();
            oModel.setData(oData);
            sap.ui.getCore().setModel(oModel);

            var oPageMasterView = sap.ui.view("masterPage",{
                type:sap.ui.core.mvc.ViewType.JS,
                viewName: "sapui5.archi.mvcapp.view.Master"
            });

            var oPageDetail = sap.ui.view("detailPage",{
                type:sap.ui.core.mvc.ViewType.JS,
                viewName: "sapui5.archi.mvcapp.view.Detail"
            });

            oApp=new sap.m.App({
                initialPage:"masterPage"

            });
            oApp.addPage(oPageMasterView).addPage(oPageDetail);
            oApp.placeAt("content");
            });
        </script>
    </head>
    <body id="content" class="sapUiBody sapUiResponsiveMargin">
    </body>
</html>

我只需要知道为什么没有将其全球化就可以正常工作。当我第一次向oApp讲话时,我什至没有使用'var'声明它。

0 个答案:

没有答案