SAP UI5 中的自定义控件事件处理
Custom Controls Event Handling in SAP UI5
在我的 SAP UI5 应用程序中,我希望创建一个类似于 http://jsfiddle.net/darkajax/MbR6c/
的 3 态切换开关
我有一个 table 并且在 table 的每一行中必须存在这些切换开关。
我想最好的方法是创建自定义控件并呈现它。它工作正常。但是,在单击任何切换开关状态时,我希望调用父控制器。我无法调用自定义控件的事件:
function(Control, Button) {
return Control.extend("svm.customControl.toggleSwitch", {
metadata: {
properties: {
A: {
type: "String"
},
B: {
type: "String"
},
C: {
type: "String"
}
},
aggregations: {},
events: {
changes: {
enablePreventDefault: true
}
}
},
renderer: function(oRm, oControl) {
oRm.write(
'<div class="switch-toggle switch-3 switch-candy">
<input id=' + oControl.getA() + ' name="state_' +
oControl.getA() + '" type="radio"
onclick='oControl.fireChanges +'>
<label for=' + oControl.getNone() + '>None</label>
<input id=' + oControl.getB() +' name="state_' +
oControl.getB() + '" type="radio"> <label for=' +
oControl.getB() +
' onclick="">Viewer</label>>/div><div>
<input id=' + oControl.getC() + ' name="state_' + oControl.getA() +
'" type="radio"> <label for=' + oControl.getC() + ' onclick="">Owner</label> <a></a></div>'
);
},
我知道上面的渲染器不好看,但是从上面的乱七八糟的东西来看,重要的一点是:
<input id=' + oControl.getA() + ' name="state_' +
oControl.getA() + '" type="radio"
onclick='oControl.fireChanges +'>
我想调用该事件,但它没有调用它。收到错误:
Uncaught SyntaxError: Unexpected token }
检查错误行:
(function(event){function })
只是想知道有没有办法调用事件?
为什么要创建自定义控件? sap.m.SegmentedButton 有什么问题?
在我的 SAP UI5 应用程序中,我希望创建一个类似于 http://jsfiddle.net/darkajax/MbR6c/
的 3 态切换开关我有一个 table 并且在 table 的每一行中必须存在这些切换开关。
我想最好的方法是创建自定义控件并呈现它。它工作正常。但是,在单击任何切换开关状态时,我希望调用父控制器。我无法调用自定义控件的事件:
function(Control, Button) {
return Control.extend("svm.customControl.toggleSwitch", {
metadata: {
properties: {
A: {
type: "String"
},
B: {
type: "String"
},
C: {
type: "String"
}
},
aggregations: {},
events: {
changes: {
enablePreventDefault: true
}
}
},
renderer: function(oRm, oControl) {
oRm.write(
'<div class="switch-toggle switch-3 switch-candy">
<input id=' + oControl.getA() + ' name="state_' +
oControl.getA() + '" type="radio"
onclick='oControl.fireChanges +'>
<label for=' + oControl.getNone() + '>None</label>
<input id=' + oControl.getB() +' name="state_' +
oControl.getB() + '" type="radio"> <label for=' +
oControl.getB() +
' onclick="">Viewer</label>>/div><div>
<input id=' + oControl.getC() + ' name="state_' + oControl.getA() +
'" type="radio"> <label for=' + oControl.getC() + ' onclick="">Owner</label> <a></a></div>'
);
},
我知道上面的渲染器不好看,但是从上面的乱七八糟的东西来看,重要的一点是:
<input id=' + oControl.getA() + ' name="state_' +
oControl.getA() + '" type="radio"
onclick='oControl.fireChanges +'>
我想调用该事件,但它没有调用它。收到错误:
Uncaught SyntaxError: Unexpected token }
检查错误行:
(function(event){function })
只是想知道有没有办法调用事件?
为什么要创建自定义控件? sap.m.SegmentedButton 有什么问题?