Wavemaker 7中的服务变量事件

时间:2014-08-30 17:11:05

标签: javascript wavemaker

我正在尝试手动拦截使用外部JSON数据的服务变量的结果。

我可以绑定一个按钮来调用API并将生成的json数据绑定到网格,并且工作正常,但我想在手动填充网格之前预处理一些数据。

“服务变量”弹出窗口有一个“事件”选项卡,但是如果为OnSuccess或OnResult事件选择“Javascript”(或者其中任何事件),它不会在代码中为您生成存根,而我不能为了我的生活,弄清楚如何捕捉这些事件。

请有人指出我正确的方向吗?文档没有解释这个(我已经广泛搜索过)。我也会在Wavemaker板上发布这个帖子,并且如果我也得到答案,我会发布答案。

1 个答案:

答案 0 :(得分:2)

好的,我最终解决了这个问题。

假设您的网络服务名为wsApiCall。 IDE将为您创建一个名为WsApiCallInvoke的服务变量,这在左侧可以看到"服务" " wm.ServiceVariable"

下的小组

单击此服务变量以显示配置面板,然后选择"事件"标签。选择" Javascript"对于你想要的事件(在我的例子中,onResult)。

**这不会像6.7那样在代码中创建存根**

编辑:不完全正确。进一步的测试表明,只要在保存之前将所有者从Application(默认)更改为Page,那么它看起来确实会创建存根。应用程序设置可能会在其他地方创建存根,但如果确实如此,我还没有找到它。

编辑2:找到它:)在wavemaker论坛的帮助下 - 在左侧的文件面板中从下拉列表中选择资源,并在文件夹" services"那里你会找到app.js.在那里创建存根以用于应用程序范围的事件。

您还必须确保所有者是" Page" - 如果所有者是"应用程序",这似乎不起作用。如果有人可以评论为什么那将是最有用的。

现在,在页面的脚本中创建自己的存根:

Application.$controller("MainPageController", ['$scope',
function($scope) {
    "use strict";

    ...

    $scope.WsApiCallInvokeonSuccess = function(variable, data) {
        // Insert code here.
    };

而且,至少对我来说,一切似乎都有效。数据对象包含我需要的json数据。

希望这有助于某人。