2

我在我的 Angular 应用程序中使用 iframe 托管 xtext 的 orion 编辑器。我需要将从我的角度应用程序端写入的内容保存到后端(Java 应用程序)。任何人都可以帮助我了解我应该从我的角度进行哪些 API 调用或方法,以便我可以保存在编辑器中编写的内容。

我已经做过的事情:
1.我尝试从我的角度侧从 iframe 中提取内容,但是如此提取的数据是部分的,因为它只提取一次只能通过 iframe 看到的数据,而不是一个拥有的全部内容滚动查看。
2. 我尝试进行 xtext 在保存时进行的“保存”API 调用,但它需要一些 stateId 作为其请求正文。我需要了解这个状态 ID 是什么以及它是如何评估的?

我正在从我的角度应用程序中拨打这个电话

        _this.saveEditor = function(args) {
        var params = {
            requiredStateId: args.stateId
        }
        _this.saveUrl = XTEXT_URL + '/save?resource=' + args.resourceId;
        return $http({
            method: 'POST',
            url: _this.saveUrl,
            data: params
        });
    };

我的请求正文是:

{"requiredStateId":"-80000000"}

这是我通过之前的加载 api 调用获得的状态 ID,该调用在其响应中返回状态 ID。

4

1 回答 1

0

可能这个剪断可以帮助你,我不知道你怎么能把它和你的东西联系起来

require(["orion/code_edit/built-codeEdit-amd"], function() {
        require(["xtext/xtext-orion"], function(xtext) {
            var editors = xtext.createEditor({
                baseUrl: baseUrl,
                syntaxDefinition: "xtext-resources/generated/mydsl-syntax"
            }).done(function(editorViewer) {
                $("#save-button").click(function() {
                    editorViewer.xtextServices.saveResource();
                });
                $("#log-button").click(function() {
                    console.log(editorViewer.xtextServices.editorContext.getServerState());
                });
            });

        });
    });

我在哪里做你可以查询的简单日志,然后手动调用保存。

于 2017-07-07T14:59:13.390 回答