我正在尝试基于复选框标记执行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 '';
}
}
})
};);
答案 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