2013-02-19 16 views
53

मुझे कुछ अजीब व्यवहार मिला है: डिफ़ॉल्ट रूप से कोणीय trims मॉडल मान। और त्वरित googling मुझे इस समस्या को हल करने में मदद नहीं करता है। मुझे ng-no-trim निर्देश प्रस्ताव, ng-trim और इसी तरह से मिला है। लेकिन कुछ भी काम नहीं करता है।AngularJS में इनपुट की ट्रिमिंग को अक्षम कैसे करें?

मैंने एक छोटा सा स्निपेट प्रदान किया है जो नीचे इस मुद्दे का प्रतिनिधित्व करता है।

function Ctrl($scope) { 
    $scope.text=''; 

    $scope.$watch('text', function (newValue) { 
    console.log(newValue); 
    }); 
} 

इसके अलावा आप इस स्निपेट here को आजमा सकते हैं।

मैंने एक टेक्स्टरेरा जोड़ा है जो मॉडल text के साथ समन्वयित है। लेकिन जब यह नई पिछली जगहों को जोड़ता है या लाइन को तोड़ देता है तो यह देखने के लिए प्रतिक्रिया नहीं करता है।

इस व्यवहार को बंद करने के लिए मैं क्या कर सकता हूं? धन्यवाद।

उत्तर

88

प्रश्न में निर्देश 1.1.1 में नया है; आप इसे JS Bin snippet का उपयोग करके काम कर सकते हैं। कोणीय 1.0.x के लिए

<textarea cols="30" rows="10" ng-model="text" ng-trim="false"></textarea> 
+0

बहुत बहुत धन्यवाद। मैंने 1.1.1 संस्करण शामिल किया है और अब यह बहुत अच्छा काम करता है। – ValeriiVasin

+1

कोई समस्या नहीं है। शायद ध्यान देने योग्य यह है कि 1.1.2 वर्तमान में नवीनतम अस्थिर है। –

+0

क्या आप मुझे एक और बात बता सकते हैं। मैंने 'ng-trim = 'false' जोड़ा है और जब मैं textarea के अंदर टाइप करता हूं तो मुझे कुछ 'div' में इसकी सामग्री को डुप्लिकेट करने की आवश्यकता होती है, लेकिन 'br' के साथ '\ n' को प्रतिस्थापित करें। लेकिन मेरा प्रतिस्थापन काम नहीं करता है। बीआर को केवल नई लाइन पर एक और चार टाइप करने के बाद डाला जाता है। कोई विचार? उदाहरण: http://jsbin.com/ibosub/12/edit – ValeriiVasin

3

निवर्तन

var app = angular.module('app', []); 

app.directive('ngTrim', function() { 
    return { 
     require: 'ngModel', 
     priority: 300, 
     link: function(scope, iElem, iAttrs, ngModel) { 
      if (iAttrs.ngTrim === 'false') { 
       // Be careful here. We override any value comming from the previous 
       // parsers to return the real value in iElem 
       ngModel.$parsers.unshift(function() { 
        return iElem.val(); 
       }); 
      } 
     } 
    } 
}); 

angular.bootstrap(document, ['app']); 

http://jsfiddle.net/vXCnj/3/

2

आप सक्षम कर सकते हैं एनजी-ट्रिम = सही/गलत उपयोग करके/अक्षम ट्रिम विकल्प। रेफरी https://docs.angularjs.org/api/ng/input/input%5Btext%5D

+0

जानना अच्छा है। पहले इस निर्देश के बारे में कभी नहीं सुना! –

+0

मेरे लिए यह भी नया @MartynChamberlin था –

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