我正在尝试创建只替换某些符号的自定义指令,它的工作几乎没问题,但是我做了一个工作,但是我不能在输入中使用'空格键'而是删除它而我无法理解为什么。
这是我的指示:
core.directive('comareplace', function () {
return {
require: 'ngModel',
link: function (scope, el, attr, ngModelCtrl) {
el.bind('keyup change', function () {
if (angular.isFunction(ngModelCtrl.$viewValue.replace)) {
ngModelCtrl.$setViewValue(ngModelCtrl.$viewValue.replace(',', ' '));
ngModelCtrl.$render();
scope.$apply();
}
});
}
};
});
例如,当您键入输入时,这个'qwe,rt'将它替换为'qwe rt',但是当您尝试使用空格'qwert'键入它时,它会删除空格'qwert'
有人知道为什么吗?以及如何纠正它?
答案 0 :(得分:2)
默认情况下,AngularJS会在将输入绑定到模型之前修剪输入的内容。
您可以使用ng-trim="false"
属性选择退出此默认修剪。
ngTrim :如果设置为false,Angular不会自动修剪输入。这个 输入[type = password]控件将忽略参数 从不修剪输入。
(默认:true)
示例
<input type="text" ng-model="name" ng-trim="false" />
<强> See Fiddle 强>