我正在尝试手动截取使用外部JSON数据的服务变量的结果。
我可以绑定一个按钮来调用API,并将生成的json数据绑定到网格,这很好,但我希望在手动填充网格之前预先处理一些数据。
服务变量弹出窗口有一个事件选项卡,但如果您为OnSuccess或OnResult事件(实际上是其中任何一个)选择"Javascript",它不会在代码中为您生成存根,而且我一生都无法找出如何捕获这些事件。
有人能给我指正确的方向吗?文档没有对此进行解释(我已经搜索了很多)。我也会把这个贴在Wavemaker板上,如果我也得到了答案,我会交叉贴出来。
好的,我(最终)解决了。
假设您的web服务名为wsApiCall。IDE将为您创建一个名为WsApiCallInvoke的服务变量,这在"wm.ServiceVariable"下的左侧"Services"面板中可见
单击此服务变量以打开配置面板,然后选择"事件"选项卡。为您想要的事件选择"Javascript"(在我的例子中是onResult)。
**这不会像6.7那样在代码中创建存根**
编辑:不完全正确。进一步的测试表明,只要在保存之前将所有者从Application(默认)更改为Page,那么它看起来确实创建了存根。应用程序设置可能会在其他地方创建存根,但如果是这样,我还没有找到它。
编辑2:找到了:)在wavemaker论坛上的帮助下-在左侧的文件面板中,从下拉列表中选择资源,在文件夹"services"下,你会找到app.js。存根是在那里为应用程序范围的事件创建的
您还必须确保所有者是"页面"——如果所有者是"应用程序",则这似乎不起作用。如果有人能评论为什么这将是最有用的。
因此,现在,在页面的脚本中创建您自己的存根:
Application.$controller("MainPageController", ['$scope',
function($scope) {
"use strict";
...
$scope.WsApiCallInvokeonSuccess = function(variable, data) {
// Insert code here.
};
而且,至少对我来说,这一切似乎都奏效了。数据对象包含我需要的json数据。
希望这能帮助到别人。