想知道在Angular 1.x(特别是1.4.4)(documentation here)中是否有格式化程序的默认解析器,以便在我向这些处理程序添加新处理程序的某些情况下我是否应该unshift
阵列。
正如文件所述,例如关于解析器:
当控件从DOM读取值时,作为管道执行的函数数组。
这个(格式化程序)数组最初是空的吗?
答案 0 :(得分:1)
是的,您应该取消添加解析器或格式化程序:
打扰$parsers
和$formatters
默认为空;
function yourFormat() {
return {
require: 'ngModel',
link: function ($scope, $elem, $attrs, $ctrl) {
var ngModelCtrl = $ctrl;
console.log(ngModelCtrl.$formatters);
console.log(ngModelCtrl.$parsers);
console.log("adding parsers and formatters");
ngModelCtrl.$formatters.unshift(function (value) {
return value + "+";
});
ngModelCtrl.$parsers.unshift(function (value) {
return value + "-";
});
console.log(ngModelCtrl.$formatters);
console.log(ngModelCtrl.$parsers);
}
}
}
function YourController() {
this.yourmodel = {};
}
angular
.module('app', []);
angular
.module('app')
.directive('yourFormat', yourFormat)
.controller('YourController', YourController);

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
<div ng-app="app">
<form ng-controller="YourController as c">
<your-format ng-model="c.yourmodel"></your-format>
</form>
</div>
&#13;