6

पर काम नहीं कर रहा मैं अधिकतम पाठ की लंबाई सीमित करने के लिए तो यह एक डीबी में एक स्तंभ की लंबाई से अधिक नहीं है चाहता हूँ। मैंने इस सीमा को बैकएंड पर रखा है, और अब मैं इसे फ्रंटेंड पर लागू करना चाहता हूं।AngularJS + TinyMCE: NG-maxlength <textarea>

मैं TinyMCE v4.3.3 angular-ui-tinymce v0.0.12 प्लगइन और AngularJS v1.4.6 के साथ उपयोग करता हूं।

जे एस:

var tinymceOpts = { 
    toolbar: false, 
    menubar: false, 
    // do not add <p></p> from the start: 
    forced_root_block: '' 
} 

HTML:

<textarea ui-tinymce="tinymceOpts" 
      ng-model="body" 
      name="body" 
      ng-maxlength="100" 
      required> 
    {{ body }} 
</textarea> 
<span ng-show="form.body.$error.maxlength" class="error"> 
    Reached limit! 
</span> 

आप देख सकते हैं, मैं ng-maxlength का उपयोग <textarea> की लंबाई सीमित करने के लिए यहाँ जोड़कर देखते हैं।

अपेक्षित परिणाम: इनपुट मान्य है और त्रुटि संदेश प्रदर्शित किया जाता है केवल यदि सामग्री की लंबाई (टैग के साथ शामिल है) एक सीमा (इस मामले में 100 अक्षरों) पार कर गया है।

वास्तविक परिणाम:
Screenshot

फार्म इनपुट स्थिति अमान्य करने के लिए सेट जब इनपुट कुछ पाठ (कोई बात नहीं क्या लंबाई) शामिल है।


वर्णों की संख्या (सही नीचे कोने में) परीक्षण के लिए की जाती है:

this.getCharCount = function() { 
    var tx = editor.getContent({format: 'raw'}); 
    return tx.length; 
}; 
+0

यह कोणीय-यूई-टिनिमस में एक बग है: [अधिकतम लम्बाई/मिनी लम्बाई विशेषता 2-तरफा डाटाबेसिंग तोड़ दी] (https://github.com/angular-ui/ui-tinymce/issues/145) – naXa

उत्तर

1

समस्या है कि यहाँ TinyMCE एक खुद का उपयोग करता है पाठ सामग्री को संपादित करने और उन्हें अपने <textarea> वापस करने के लिए लिखता है विशेष घटनाओं पर। कोई आश्चर्य नहीं ng-maglength यहां काम नहीं करता है।

आदेश प्राप्त करने के लिए आप क्या आप संपादक सामग्री के लिए जाँच करें और मामले में और अधिक पात्रों में प्रवेश maxlength तक पहुँच जाता है की अनुमति नहीं देने की आवश्यकता होगी चाहते हैं।

+0

मैं हूँ TinyMCE के लिए AngularJS wrapper का उपयोग करके, यह टेक्स्ट सामग्री को किसी मॉडल से जोड़ता है। तो 'ng-maxlength 'निर्देश को'