はい、あなたはパーサやフォーマッタを追加するためにアンシフトする必要があります
$parsers
邪魔と$formatters
は、デフォルトでは空ですが。
function yourFormat() {
\t return {
\t \t require: 'ngModel',
\t \t link: function ($scope, $elem, $attrs, $ctrl) {
\t \t var ngModelCtrl = $ctrl;
\t \t \t console.log(ngModelCtrl.$formatters);
\t \t \t console.log(ngModelCtrl.$parsers);
\t \t \t console.log("adding parsers and formatters");
\t \t \t ngModelCtrl.$formatters.unshift(function (value) {
\t \t \t \t return value + "+";
\t \t \t });
\t \t \t ngModelCtrl.$parsers.unshift(function (value) {
\t \t \t \t return value + "-";
\t \t \t });
\t \t \t console.log(ngModelCtrl.$formatters);
\t \t \t console.log(ngModelCtrl.$parsers);
\t \t }
\t }
}
function YourController() {
this.yourmodel = {};
}
angular
\t .module('app', []);
angular
\t .module('app')
\t .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>
出典
2016-07-13 10:37:02
gyc
こんにちは!そして、**この(およびフォーマッタ)配列は最初は空ですか?** – zmii
@zmii答えはスニペットで編集されました – gyc