我在我的 angular 应用程序中使用 iframe 托管 xtext 的 orion 编辑器。我需要将从我的角度应用程序端写入的内容保存到后端(Java 应用程序(。谁能帮我从角度一侧进行哪些 API 调用或方法,以便我可以保存编辑器中编写的内容。
我已经做了什么:
1 .我尝试从我的角度侧从 iframe 中提取内容,但如此提取的数据是部分的,因为它只提取一次只能通过 iframe 可见的数据,而不是必须滚动才能查看的全部内容。
阿拉伯数字。我尝试进行 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。
这个剪纸可以帮助你,我不知道你怎么能把它和你的东西联系起来
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());
});
});
});
});
在我执行简单日志的地方,您可以查询然后手动调用 Save。