example - cómo restringir al usuario para que escriba solo una función de JavaScript(método) dentro del editor ui-ace
ng-repeat example (2)
Debe adjuntar la función js que se activará en los eventos keyDown o onBlur dentro del editor de texto. Esa función debe realizar la comprobación del texto en el editor para declaraciones de declaración de función por RegExp . Si encuentra más de una coincidencia de declaración de función, puede manejar el caso cuando se declara más de una función dentro del editor de texto.
este es mi código de controlador
$scope.aceOptions = {
workerPath: ''http://localhost:50871/Scripts/app/vendor/'',
useWrapMode: true,
showGutter: true,
theme: ''chrome'',
firstLineNumber: 1,
onLoad: function (_editor) {
$scope.script = {};
$scope.script.scriptCode = "function fieldName_columnName_" + "functionName(){/n/n/n}";
var _session = _editor.getSession();
_session.setMode(''ace/mode/javascript'');
var _renderer = _editor.renderer;
_session.on(''changeAnnotation'', function () {
$scope.annotations = [];
$scope.annotations = _editor.getSession().getAnnotations();
}),
_editor.$blockScrolling = Infinity;
_session.on("change", function (e) {
var currentValue = _editor.getSession().getValue();
$scope.script.scriptCode = currentValue;
});
},
require: [''ace/ext/language_tools''],
advanced: {
enableSnippets: true,
enableBasicAutocompletion: true,
enableLiveAutocompletion: true
}
}
escribí directivas para ui-ace este es mi código html
<javascript-editor code="script.scriptCode" ace-option="aceOptions"></javascript-editor>
y el código de la directiva es
SCSApp
.directive(''javascriptEditor'', [
function () {
return {
restrict: ''E'',
scope: {
data: ''=code'',
aceOption: ''=''
},
templateUrl: ''/Scripts/app/shared/directives/javascripEditor/partials/javascriptEditor.html'',
link: function (scope, element, attrs) {
}
}
}]);
y este es mi javascriptEditor.html
<div class="e1" ui-ace="aceOption" ng-model="data"></div>
solo quiero restringir al usuario para que no escriba más que una función javascript en el editor ui-ace
Puede crear su propio analizador sintáctico de funciones javascript o usar una lib como parser3
Luego, escriba las reglas lógicas para mostrar el éxito / fracaso de la IU en función del contenido del editor de ACE.
Se trata de analizar cadenas / oraciones como lo hacen los compiladores para crear el código de bajo nivel.