5

के अंदर केवल एक जावास्क्रिप्ट समारोह (विधि) लिखने के लिए यह मेरा नियंत्रक कोड हैकैसे उपयोगकर्ता को प्रतिबंधित करने के ui-इक्का संपादक

$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 
     } 
    } 

मैं ui-इक्का के लिए निर्देश लिखा था यह मेरा एचटीएमएल कोड है

<javascript-editor code="script.scriptCode" ace-option="aceOptions"></javascript-editor> 

और निर्देश कोड

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) { 
      } 
     } 
    }]); 

है और यह मेरा javascriptEditor.html

है
<div class="e1" ui-ace="aceOption" ng-model="data"></div> 

मैं सिर्फ morethan एक ui-इक्का संपादक में जावास्क्रिप्ट समारोह

उत्तर

1

आप अपनी खुद की जावास्क्रिप्ट सरल समारोह पार्सर एक lib तरह parser3

तब तर्क लिखना बना सकते हैं या उपयोग कर सकते हैं लिखने के लिए उपयोगकर्ता नहीं प्रतिबंधित करना चाहते हैं एसीई संपादक की सामग्री के आधार पर यूआई को सफलता/असफल दिखाने के नियम।

यह निम्न स्तर कोड बनाने के लिए कंपाइलर्स की तरह स्ट्रिंग/वाक्यों की पार्सिंग है।

+0

मैं आप इसे प्लंकर में कर सकता हूं, मैंने आपको नहीं मिला, मैं एसी संपादक –

+0

@ साइड रशीद में नया हूं यह ऐस संपादक कोड मान प्राप्त करने का एक उदाहरण है और कुछ तर्क (अपना स्वयं का सरल पार्सर) http://plnkr.co/edit/KF9TNnu7nwXo283Hqm9w?p=preview जैसा कि मैंने उत्तर में कहा था, आप एक और जटिल lib का उपयोग कर सकते हैं जो जावास्क्रिप्ट कोड पार्सिंग के लिए डिज़ाइन किया गया है। – cesarluis

0

आपको जेएस फ़ंक्शन संलग्न करना होगा जो कि टेक्स्ट एडिटर के भीतर कीडाउन या ऑनब्लूर इवेंट पर ट्रिगर होगा। उस फ़ंक्शन को RegExp द्वारा फ़ंक्शन घोषणा विवरणों के लिए संपादक में पाठ की जांच करना चाहिए। यदि आपको फ़ंक्शन घोषणा के एक से अधिक मैच मिलेंगे तो आप टेक्स्ट एडिटर में एक से अधिक फ़ंक्शन घोषित किए जाने पर केस को संभाल सकते हैं।

संबंधित मुद्दे