2015-05-28 17 views
12

Açısal olarak belirli bir yolu var mı? Değilse, bunu yapmak için yerleşik jquery kullanmalı mıyım? Yerleşik jquery'yi kullanmam gerekirse, $ (veya gerekli olan) kullanmadan trim() işlevine nasıl ulaşırım?Bir dizgeyi açısal olarak nasıl keserim?

Düzenleme - Evet str.trim() hakkında biliyorum. Afedersiniz. Bunu çalışmak için IE 8

Düzenleme - Bu soru bir yinelenen olduğu sürece, özellikle başvurulan yanıtın javascript, node ve jquery'de nasıl yapılacağını açıkladığı açısal olarak nasıl yapılacağını soruyorum. Yapılı jquery'yi açısal olarak kullanarak yapmanın bir yolu var mı?

Düzenleme -) (Anlaşılan cevap da tüm angularjs sonra javascript

+0

[trim()] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/trim) çoğu tarayıcıda desteklenen String prototipinde yerleşik bir yöntemdir. MDN bağlantısı, – CodingIntrigue

+0

polyfill sağlar. Düzenlemeniz, çoktan yanıtlamış olan kişilere karşı çok adil değildir. Ofsetin bu tür bir şartını içermelisiniz. – CodingIntrigue

+0

Mümkün olan yinelenen [JavaScript içinde Döşeme dizesi?] (Http://stackoverflow.com/questions/498970/trim-string-in-javascript) –

cevap

9

kullanım Döşeme() yöntemini "angularjs bu yapmaz" bir javascript çerçeve olduğunu ve kaplamayı uygulamak $ koymak için gerekli değildir

var x="hello world"; 
x=x.trim() 
+0

IE 7/8/9'da çalışmak için buna ihtiyacım var. trim() bunu yapmaz. – Slartibartfast

+0

Daha önce, IE'de sizin için çalışmadığından bahsetmediniz, böylece şimdi str.replace (/^\ s + | \ s + $/g, '') kullanabilirsiniz; –

19

Neden sadece kullanmayan örneğin

JavaScript en trim():

<IE9 kullanımı ile uyumluluk için
str.trim() //Will work everywhere irrespective of any framework. 

:

if(typeof String.prototype.trim !== 'function') { 
    String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ''); 
    } 
} 

sadece ekranı gerekiyorsa o Here

+1

Eh ... her yerde değil ... ör. CodingIntrigue

+0

http://kangax.github.io/compat-table/es5/#String.prototype.trim. Sadece IE9 – com2ghz

+0

'da Sıkı modunda değil IE 7+ – Slartibartfast

17

kesilmiş değeri o zaman orijinal dize manipüle karşı öneririm Bulundu ve bunun yerine bir filter kullanıyor.

app.filter('trim', function() { 
    return function(value) { 
     if(!angular.isString(value)) { 
      return value; 
     } 
     return value.replace(/^\s+|\s+$/g, ''); // you could use .trim, but it's not going to work in IE<9 
    }; 
}); 

Sonra

<span>{{ foo | trim }}</span> 
1

JS .trim() aşağıda IE 8 ve dışında temelde everthing desteklenir.

Eğer bununla çalışmasını istiyorsanız, JQuery'yi kullanabilirsiniz, ancak < 2.0.0 olması gerekir (2.x.x satırında IE8 desteğini kaldırdıkları için).

Diğer seçenek (daha önce söz gibi) Eğer IE7/8 veriyorsan, kendini Döşeme eklemektir: Ben etiketinde bu kodu eklemek

if(typeof String.prototype.trim !== 'function') { 
    String.prototype.trim = function() { 
    return this.replace(/^\s+|\s+$/g, ''); 
    } 
} 
+1

Bu ve diğer yanıtlardan, bunu işlemek için özel bir yol olmadığını anlıyorum. – Slartibartfast

+0

Doğru değil, yok. – YaManicKill

3

ve düzgün çalışır:

ng-show="!Contract.BuyerName.trim()" > 
+0

neden bu downvoted? Benim için harika çalıştı ve en basit çözüm gibi görünüyor. –

İlgili konular