【问题标题】:ACE code editor issues in Internet explorerInternet Explorer 中的 ACE 代码编辑器问题
【发布时间】:2014-05-20 16:10:28
【问题描述】:

我对 Internet Explorer 感到非常沮丧(谁不是)。

作为背景,我将 ACE 代码编辑器与 Angular js 结合使用。

This tutorial

几乎就是我为我的指令复制的内容,减去这两行。

var MarkdownMode = require('ace/mode/markdown').Mode;
editor.getSession().setMode(new MarkdownMode());

相反,对于我使用“xml”的模式。

editor.getSession().setMode('ace/mode/xml');
editor.setReadOnly(true);

在我的 html 中,我使用这样的指令。

<div class= "editor" data-ace="" data-ng-model="xml_string"></div>

然后我像这样从后端/我的控制器中获取“xml_string”。

myApp.controller('resourceDisplayCtrl', function($scope, $http){

    $scope.xml_string = "";

    var route = "/get_resource_info/" + $scope.resource + '/';

    $http.get(route).success(function(data){
        $scope.xml_string = data['data'];
    });
});

如果需要,我可以写下更多代码,但我认为这就是它的要点。我的问题是我的代码按预期工作......在Firefox中。 xml_string 从后端正确设置,并将 xml 文件加载到编辑器中。

但是,这在第一次使用 IE 时永远不会起作用。有时,如果我向 IE 刷新按钮发送垃圾邮件,最终会加载 xml 文件,但对我来说这更陌生。也许是缓存问题?我尝试删除缓存,但不行。有什么想法吗?

编辑:我包括了一个

alert(data['data']); 

所以我知道xml字符串是从后端正确发送的。

【问题讨论】:

  • 只是好奇...data-ng-model 属性中塞入了多少 XML?这似乎是一种非常痛苦的编码方式。
  • 不错,但不超过 firefox 的处理能力?你有更好的方法来做这样的事情吗?
  • 试试 editor.getSession().setValue(data) 是否有效,如果有效,那一定是 Angular 中的错误,您可以在没有 Angular 包装器的情况下使用 Ace。
  • 我会尝试,但到目前为止,所有 Angular 中的东西都在 IE 中为我工作。

标签: javascript angularjs internet-explorer firefox ace-editor


【解决方案1】:

这是我的脚本标签放置错误。吸取的教训,如果您希望 ACE 指令正常工作,请将您的 ace 标签放在 angular 标签之前 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2017-04-28
    • 1970-01-01
    • 2014-10-02
    相关资源
    最近更新 更多