2017-07-25 62 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

对不起。我知道如何将它绑定到一个模块中。具体来说,你会在哪里调用输入指令,或者你是否暗示一旦这个被加载,它会是全局的,并自动实现所有输入? –