如何在SAPUI5控制器中实现基于if / else的?

时间:2017-09-26 05:52:53

标签: javascript sapui5

我正在尝试基于复选框标记执行if / else。以下是我的观点和控制器的片段。我在最后一行上得到语法错误。任何人都有任何线索?

查看 -

<mvc1:View
   controllerName="sap.ui.demo.wt.controller.App"
   xmlns="sap.m"
   xmlns:mvc1="sap.ui.core.mvc1">

<CheckBox id="i1" text="Test" selected="false" select ="checkDone" enabled="true" />

</mvc1:View>

控制器 -

sap.ui.define(["sap/ui/core/mvc/Controller"], function(Controller) {
    "use strict";
    return Controller.extend("sap.ui.demo.wt.controller.App", {
        checkdone: function() {
            var check = this.byId("i1").getSelected();
            if (check = true) {
                alert("Successful");
            } else {
                return '';
            }
        }
    })
};);

3 个答案:

答案 0 :(得分:0)

我认为您需要删除return ''行。

此外,我建议你使用if (check === true)if (check)加上如果你选择了复选框似乎更有益

checkDone: function (oEvent) {
     var bSelected = oEvent.getParameter('selected'));
}

如果这些提示无效,请检查分号和括号。通常,如果错误,每个IDE都应该为您提供建议。我认为控制器的结尾应该是这样的:

            } else {
                return '';
            }
        }
    });
});

答案 1 :(得分:0)

我已经注意到代码中的一些内容,

checkdone 方式获取活动,并尝试从该活动中获取所选数据,而不是ID。

与真实用途 === 进行比较,而不是 =

最后你在错误的地方使用分号。这就是为什么你会得到错误。

sap.ui.define(["sap/ui/core/mvc/Controller"], function (Controller) {
    "use strict";
    return Controller.extend("sap.ui.demo.wt.controller.App", {
        checkdone: function(oEvent){
            var check = oEvent.getParameter('selected');
            if (check === true){
                alert("Successful");
            } else {
                return '';
            }
        }
   });
});

答案 2 :(得分:0)

根据您的代码,您在最后一行使用了额外的分号

 sap.ui.define([ "sap/ui/core/mvc/Controller" ], function(Controller) {
     "use strict";
     return Controller.extend("sap.ui.demo.wt.controller.App", {
         checkdone: function() {
             var check = this.byId("i1").getSelected();
             if (check = true) {
                 alert("Successful");
             } else {
                 return '';
             }
         }
     })
 };);//extra semicolon 

更新的代码:

sap.ui.define(["sap/ui/core/mvc/Controller"], function(Controller) {
    "use strict";
    return Controller.extend("sap.ui.demo.wt.controller.App", {
        checkdone: function() {
            var check = this.byId("i1").getSelected();
            if (check) {
                alert("Successful");
            } else {
                return '';
            }
        }
    })
});//remove exta semicolon