如何使用setValue更新ui-ace编辑器的值时更新ngModel?

时间:2017-05-11 05:32:47

标签: angularjs ace-editor ui-ace

我使用ui-ace指令在角度应用程序中实现ace编辑器。 我有一个按钮,用于动态添加数据到ace编辑器。 现在当用户点击按钮时,我使用setValue方法更新ace编辑器的值,但该值并未反映在ngModel中。这样做的最佳方式是什么?

这是我如何设置值...

$scope.addUserInput = function (input) {
    var currentValue = $scope.aceEditor.getValue();

    if(SqlTokenizer.isIdentifier(input.name)){
        $scope.aceEditor.setValue(currentValue + ":" + input.name, false);
    } else{
        $scope.aceEditor.setValue(currentValue + ':"'+ input.name +'"', false);
    }
};

我在这里创建了同样的plunkr http://plnkr.co/edit/ez0cwr6PWhALpqu3wjZT?p=preview

1 个答案:

答案 0 :(得分:1)

更新了plnkr:http://plnkr.co/edit/GCnDPQnC7xoC6xqdOeqd

问题是你在编辑器中添加/更新文本不需要这样做。

只需更新范围变量,它将反映在所有绑定位置。

而不是

//$scope.editor.setValue($scope.editor.getValue() + new Date().getTime());

这样做

$scope.text = $scope.text + new Date().getTime();