2017-07-25 58 views
2

我正在使用AngularJS 1.5.6版。我有一個大量的文本區域和文本輸入的應用程序。我今天發現了一個缺陷,這是由文本類型輸入的修剪輸入的默認AngularJS行爲引起的。我希望將此行爲從缺省修剪改爲默認情況下不修剪。更改AngularJS ngTrim行爲

有沒有一種簡單的方法來做到這一點,而不是通過我的應用程序中的數百textareas和文本輸入。 (可能是全局的或者是自己寫的指令?)

這裏是描述ng-trim(ngTrim)默認行爲的文檔頁面。

https://docs.angularjs.org/api/ng/input/input%5Btext%5D

+0

按照文檔設置'NG-裝飾=「假」' – charlietfl

+1

這可能是一個很好的用例使用jQuery搶你所有的文本框的引用,然後設置NG-修剪假。我通常不提倡將Jquery代碼與角度應用程序混合使用,但這似乎是一件非常簡單的事情。 –

+0

@charlietfl是的,我明白了,但我不想爲數百種不同的元素做到這一點。 – ryanp102694

回答

2

下面的指令應適用於所有的輸入類型=文本字段。它將默認爲每個輸入字段設置ngTrim的值爲false。如果需要,可以爲textarea創建一個類似的。

.directive('input', function($compile){ 
    return { 
    link(scope, element, attrs) { 
    if (element.attr('type') === 'text') { 
     attrs.$set('ngTrim', 'false'); 
    } 
    } 
    }; 
}); 
+0

@SKPall你會在哪裏指定它? –

+0

它可以添加到已添加控制器的相同模塊中,也可以添加到新模塊中。 – SKSpall

+0

對不起。我知道如何將它綁定到一個模塊中。具體來說,你會在哪裏調用輸入指令,或者你是否暗示一旦這個被加載,它會是全局的,並自動實現所有輸入? –