https://github.com/angular-ui/ui-codemirror
我需要在angular中制作语法高亮显示,并将结果保存在数据库中。
我正在使用ui-codemirror,但每次我更改文档中的“pre”时我都无法刷新textarea
<textarea ui-codemirror ng-model="x" ui-refresh='isSomething'></textarea>
但我不能让它发挥作用。
任何人都知道如何做到这一点?
答案 0 :(得分:9)
我遇到了同样的问题,暂时无法找到解决方案。
一旦范围变量/函数返回true,CodeMirror实例将被更新。 这可以通过对正在显示的值进行计算的函数来确定,但在我的片段中,我从广播事件的结果更新了我的数据。 我将要检查的范围变量设置为true,然后使用短延迟,我将其更改为false。
$scope.$on(ART_EVENTS.updateOverview, function (event, data) {
$log.info("received overviewData in articleController.");
// do stuff with the data
// ...
$scope.refreshCodemirror = true;
$timeout(function () {
$scope.refreshCodemirror = false;
}, 100);
});
然后在视图中:
<textarea ui-codemirror ng-model="x" ui-refresh='refreshCodemirror'></textarea>
我确实认识到可能有更好的解决方案,但这可以满足我的需求。
答案 1 :(得分:0)
非常感谢。我是angularJS新手,我解决了它。对于其他新手。确保您事先注入了$ timeout。