Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度ui ace需要ng_Angularjs_Ace Editor - Fatal编程技术网

Angularjs 角度ui ace需要ng

Angularjs 角度ui ace需要ng,angularjs,ace-editor,Angularjs,Ace Editor,您将如何在表单中实现ng required和angular ui ace 这是我的标记: <form name="scriptform"> <div name="script" ui-ace="{ onLoad: configureAce }" ng-required="" ng-model="someCodez"> </div> </form> {{ scriptform }

您将如何在表单中实现ng required和angular ui ace

这是我的标记:

<form name="scriptform">
    <div name="script"
         ui-ace="{ onLoad: configureAce }"
         ng-required=""
         ng-model="someCodez">
    </div>
</form>

{{ scriptform }}

{{scriptform}}
开箱即用的ace似乎没有连接到angular form验证框架, 因为上面的{scriptform}}在
“someCodez”为空。

查看文档,我认为
ng required
属性仅与
元素一起工作,因此这种方法可能不可行

但是,您可以通过更改表单组件本身的
$setValidity
来获得类似的结果。例如,当用户不再更改Ace编辑器中的内容时:

$scope.configureAce = function() {
  return {
    onLoad: function (editor) {
      editor.on('blur', function() {
        if (/* test validity of someCodez */)
          $scope.scriptForm.script.$setValidity('scriptSyntax', true);
        else
          $scope.scriptForm.script.$setValidity('scriptSyntax', false);
        $scope.$digest();
      });
    }
  };
};

$setValidity
的第一个参数是一个自定义字符串,您可以检查它,并使用它向用户显示错误状态。请参阅相关文档:

目前,我在使用aces“onChange”cb方面做了一项非常糟糕的工作。是的,这几乎就是我正在做的事情。编辑器事件似乎是在当前版本中连接它的唯一方法。谢谢你的回答!