javascript - Angular 1.x 中有默认的解析器/格式化程序吗?

标签 javascript angularjs forms formatter

想知道 Angular 1.x(特别是 1.4.4)( documentation here )中是否有格式化程序的默认解析器来了解在某些情况下当我添加新处理程序时是否应该 unshift那些数组。

正如文档所述,例如关于解析器:

Array of functions to execute, as a pipeline, whenever the control reads value from the DOM.

这个(和格式化程序)数组最初是空的吗?

最佳答案

是的,您应该取消添加解析器或格式化程序:

另外$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>

关于javascript - Angular 1.x 中有默认的解析器/格式化程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38348811/

相关文章:

javascript - 使用 Three.js 在形状上显示图像时出错

javascript - 具有多个选项的 Angular Directive(指令)

javascript - 如何使用 Angular JS 获取提交操作中所有选定的复选框值?

php - 将使用连接的函数添加到 HTML 表单会导致函数错误地显示在表单顶部

javascript - 使用表单的多个实例发送不同的数据

javascript - 在 JavaScript 中,为什么 typeof Function.prototype 是 "function",而不是像其他原型(prototype)对象那样 "object"?

javascript - Bootstrap 子模态打开时触发父模态打开事件

javascript - 使用 require js 将 crossorigin 属性添加到 script 标签

javascript - 想要将一个额外的列值传递给 $scope.seriesSelected

jquery - 在 jQuery 中获取输入元素的值