【发布时间】:2014-05-20 16:10:28
【问题描述】:
我对 Internet Explorer 感到非常沮丧(谁不是)。
作为背景,我将 ACE 代码编辑器与 Angular js 结合使用。
几乎就是我为我的指令复制的内容,减去这两行。
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