如何使用ui-codemirror和AngularJS刷新CodeMirror?

use*_*455 2 codemirror angularjs ui-codemirror

https://github.com/angular-ui/ui-codemirror

我需要在angular中制作语法高亮显示并将结果保存在数据库中.

我正在使用ui-codemirror,但每次我更改文档中的"pre"时我都无法刷新textarea

<textarea ui-codemirror ng-model="x" ui-refresh='isSomething'></textarea>
Run Code Online (Sandbox Code Playgroud)

但我不能让它发挥作用.

有谁知道如何做到这一点?

小智 10

我有同样的问题,暂时无法找到解决方案.

一旦范围变量/函数返回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);
});
Run Code Online (Sandbox Code Playgroud)

然后在视图中:

<textarea ui-codemirror ng-model="x" ui-refresh='refreshCodemirror'></textarea>
Run Code Online (Sandbox Code Playgroud)

我确实意识到可能有更好的解决方案,但这适用于我需要的东西.