点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
我正在使用HTML 5范围滑块创建自定义SDK扩展组件。 每当滑块值更改时,我想在Lumira中的组件的scriptBox中执行代码。 在花了很多时间进行调试之后,我认为我已将问题缩小到以下事实:我无法更新 " currentValue" xml属性的值 (代表滑块当前值的属性),以编程方式在我的.js文件中。 这是所有相关代码:
component.js
this。$()。children('#slider')。on(" input",function(){ /*我想我需要使用它-但也许我错了 that.callZTLFunction(" setValue",function(result){ alert("结果:" +结果); that.fireEvent(" onchange"); },"" + that。$()。children('#slider')。val()); */ that.currentValue(that。$()。children('#slider')。val()); that.fireEvent(" onchange"); }); }; this.currentValue = function(newVal){ alert("设置当前值:" + newVal); 如果(newVal!==未定义){ $。()。children('#slider')。val(newVal); //这会基于newVal设置一些CSS样式-不相关 this.updateSliderDisplay(newVal); 返回这个 } else {返回 this。$()。children('#slider')。val(); } };
contribution.ztl
/*设置滑块范围的当前值。 */ 无效setValue(float newVal) {* this.currentValue = newVal; *} /*返回滑块范围的当前值。 */ float getValue(){* 返回this.currentValue; *}
组件脚本框:
this.setValue(35);//这是对此特定组件实例的引用 APPLICATION.alert("新的当前值:" + this.getValue());
执行轨迹(滑块范围为1-100):
1.默认滑块值:50(默认属性值)
2将值更改为68。
输出跟踪:
2.1。 (警告对话框)"设置当前值:68"
2.2。 (警报对话框)"新的当前值:35"
2.3。 (警告对话框)"设置当前值:35"
此时,我的滑块已按预期位置位于35
3.将值更改为50
输出跟踪:
3.1。 (警告对话框)"设置当前值:65"
3.2。 (警报对话框)"新的当前值:35"
此时,我的滑块位于65,而不是35。
4。 如果我重复将值更改为一些X
输出跟踪:
4.1。 (警告对话框)"设置当前值:X"
4.2。 (警报对话框)"新的当前值:35"
4.3。 (警告对话框)"设置当前值:X"
我的滑块位于X而不是35。
此跟踪使我相信,该属性第一次更改为35只是因为在滑块的" oninput"期间没有任何可更新(设置)属性值的操作。 然后,我猜是因为该值第一次设置为35,并且此后一直未更改,因此下次执行this.setValue(35)时不会触发任何操作,因为没有更改。 我相信我需要使用callZTLFunction以编程方式在" oninput" eventHandler中设置属性的值,以便在执行scriptBox中的setter时,将其注册为实际更改,并在component.js中执行currentValue()。 。 不幸的是,我遇到的有关callZTLFunction的信息和示例很稀少,仅演示了何时在getter上使用它-我试图在setter上使用它而没有成功。 是否可以在设置器上使用callZTLFunction? 如果是,您可以举个例子吗? 根据我的描述,我对问题的总体理解是否正确,或者在事件触发方式以及框架如何使用代码方面还缺少其他东西? 如果您认为问题出在其他地方,或者您需要其他信息,请告诉我。 我期待着您的答复,因为一段时间以来这一直是绊脚石。
谢谢
迪米塔尔
一周热门 更多>