我的目标是创建一个角度过滤器,可以放置在textarea或输入上,这样当用户键入与预定义正则表达式匹配的文本时,文本将被识别并替换为该文本的蒙版形式。
这是否可以使用过滤器?或者我应该以不同的方式接近它?我提供了我已经开始的东西,但是它离我太远了,我不确定它会有什么帮助。即使是一个坚实的起点和确认我正确接近(或不接受),也会有所帮助。
答案 0 :(得分:0)
看起来指令是最简单的方法,因为过滤器不能包含在ng-model绑定中。
基于此, 重度帮助 (这可能会被标记为重复的问题)来自this page的第二个答案,我得到了它的工作我想要的方式。
angular.module("app").directive('customValidation', function () {
return {
require: 'ngModel',
link: function (scope, element, attrs, modelCtrl: ng.INgModelController) {
modelCtrl.$parsers.push(function (inputValue) {
var transformedInput = inputValue.replace(/microsoft/i, "W3Schools");
if (transformedInput != inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
});
<textarea ng-model="vm.text" ng-trim="false" custom-validation></textarea>