2013-02-19 61 views
53

Bazı garip davranışlar buldum: varsayılan olarak açısal trims model değerleri. Ve hızlı googling bu problemi çözmemde bana yardımcı olmaz. ng-no-trim yönerge önerilerini, ng-trim vb. Buldum. Ama hiçbir şey işe yaramıyor.AngularJS'deki girdilerin kırpılması nasıl devre dışı bırakılır?

Aşağıda bu sorunu temsil eden küçük bir pasaj sağladım. Bu snippet'i here da deneyebilirsiniz. Ayrıca, bu snippet'i here deneyebilirsiniz.

Model text ile uyumlu bir textarea ekledim. Ancak, yeni izleyen boşluklar eklerken izlemeye tepki vermiyor veya çizgiyi yenisine ayırıyor.

Bu davranışı kapatmak için ne yapabilirim? Teşekkürler.

cevap

88

Söz konusu yönerge 1.1.1'de yenidir; JS Bin snippet kullanarak çalışan görebilirsiniz. açısal 1.0.x için

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

Çok teşekkürler. 1.1.1 sürümünü ekledim ve şimdi harika çalışıyor. – ValeriiVasin

+1

Sorun değil. Belki de dikkati çeken şey şu ki 1.1.2 şu anda en son kararsız. –

+0

Bana bir şey daha söyleyebilir misiniz? 'Ng-trim = 'false' ekledim ve textarea'nın içine girdiğimde, içeriğini 'div' içinde çoğaltmam gerekiyor, ancak' \ n 'yerine' br' ile değiştirin. Ama benim yedeğim işe yaramıyor. BR, yeni satıra bir tane daha yazdıktan sonra eklenir. Düşüncesi olan var mı? Örnek: http://jsbin.com/ibosub/12/edit – ValeriiVasin

3

Yedek

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/

İlgili konular