Javascript 如何防止早于1.3.0版本的字段自动修剪?
是否有任何方法可以防止angular 1.3.0之前的版本在整个应用程序中自动调整字段?我知道我可以使用ngTrim指令来阻止指定字段使用该指令,但如果将该指令添加到应用程序中的所有文本字段中,看起来不太好,是否有任何方法可以对角度模块中的所有字段执行该指令?下面是代码,如果在输入的开头添加空格,它们将不会出现在标签中:Javascript 如何防止早于1.3.0版本的字段自动修剪?,javascript,angularjs,Javascript,Angularjs,是否有任何方法可以防止angular 1.3.0之前的版本在整个应用程序中自动调整字段?我知道我可以使用ngTrim指令来阻止指定字段使用该指令,但如果将该指令添加到应用程序中的所有文本字段中,看起来不太好,是否有任何方法可以对角度模块中的所有字段执行该指令?下面是代码,如果在输入的开头添加空格,它们将不会出现在标签中: <div ng-app> <div ng-controller="TodoCtrl"> {{field}} <input
<div ng-app>
<div ng-controller="TodoCtrl">
{{field}}
<input type="text" ng-model="field">
</div>
</div>
{{field}}
这里还有我第一个问题的链接,答案适用于angular 1.3.0或更高版本。在angular 1.3.x之前的版本中,您可以尝试修饰编译函数:
app.config(function($provide) {
$provide.decorator('inputDirective', function($delegate) {
var directive = $delegate[0];
directive.compile = function(orig) {
return function(element, attrs, transclude) {
attrs.$set('ngTrim', 'false');
return orig.apply(null, arguments);
};
}(directive.compile);
return $delegate;
});
});
不过,这种方法在1.3.x中也应该适用
演示: