使用AngularJS UI.Ace指令(JSON模式)无错误提示问题咨询
解决AngularJS UI.Ace JSON模式下无错误提示的问题
我之前也碰到过一模一样的情况!侧边栏显示错误图标但悬停没提示,确实是和Ace的worker-json加载或者配置有关,给你几个排查和解决的方向:
确认Worker文件的加载路径
Ace的语法检查依赖对应的worker脚本(这里是worker-json.js),UI.Ace默认会从Ace的base路径下去找workers目录。如果你的Ace文件不是放在默认位置,需要手动配置base路径:angular.module('yourApp') .run(function() { // 替换成你项目中ace-builds的实际路径,比如bower或者npm安装的位置 ace.config.set('basePath', 'lib/ace-builds/src-min-noconflict'); });也可以单独指定worker的路径:
ace.config.set('workerPath', 'lib/ace-builds/src-min-noconflict/workers');同时要确保
worker-json.js文件确实存在于这个路径下,并且浏览器能正常请求到它(可以打开开发者工具的网络面板,看是否有404错误)。显式开启Worker支持
虽然UI.Ace默认应该开启worker,但有时候可能因为配置被覆盖导致失效,建议在ace-options里显式设置useWorker: true:<div ui-ace="{ mode: 'json', useWorker: true, theme: 'chrome' }"></div>检查版本兼容性
如果你用的UI.Ace版本比较老,可能和最新的ace-builds不兼容。建议确认两者版本匹配,比如UI.Ace的最新版本对应ace-builds 1.x系列,避免版本差异导致的worker加载异常。手动引入Worker脚本(备选方案)
如果上面的配置都不生效,可以尝试直接在页面中引入worker-json.js:<script src="lib/ace-builds/src-min-noconflict/workers/json.js"></script>不过这种方式不如配置basePath优雅,但可以快速验证是否是路径问题。
内容的提问来源于stack exchange,提问作者Markus Török
相关产品推荐
相关产品推荐

