2016-07-13 6 views
1

Angler 1.x(具体的には1.4.4)(documentation here)にフォーマッタのデフォルトのパーサーがありますか?新しいハンドラを追加する場合にはunshiftを実行する必要があるかどうかを理解してください。Angular 1.xにデフォルトのパーサ/フォーマッタがありますか?

例:パーサーについて:

コントロールがDOMから値を読み取るたびに、パイプラインとして実行する関数の配列。

この(フォーマッタ)配列は最初は空ですか?

答えて

1

はい、あなたはパーサやフォーマッタを追加するためにアンシフトする必要があります

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

+0

こんにちは!そして、**この(およびフォーマッタ)配列は最初は空ですか?** – zmii

+0

@zmii答えはスニペットで編集されました – gyc

関連する問題