2017-10-13 10 views
0

フィールドの値に応じてシンボルを表示するという指示があります。角型命令 - NgModelCtrl Parser問題

<input type="text" placeholder="" class="text-input" ng-class="example_class" ng-model="exmaple-model" my-directive /> 

、次のように指示:

module.directive("myDirective", function() { 
    return { 
     require: "?ngModel", 

     link: function (scope, element, attrs, ngModelCtrl) { 
      /*breakpoints show the line above and below are reached*/ 
      ngModelCtrl.$parsers.push(function (val) { 
       /* call to function to show symbol, this line is never reached */ 
      } 

コードはngModelCtrlラインに到達するが、さらなる到達されないが、以下のようにこれは、フィールドに取り付けられています。デバッグでは、ngModelCtrlが正常に構築されているように見えますが(機能や値などあり)、$parsersは空です。長さは0です。そこにあるべき機能はありません。

Chromeのインスペクタを見るとエラーは発生しません。 $parsersが空白になる理由はありますか、それ以上ディレクティブをデバッグする方法はありますか?

+0

あなたは2つのリンクのメソッドを持っているのはなぜ? (または単にコピーされていないのですか?)ngModelはオプションではありませんか? – Thowk

答えて

2

あなたのパーサが0の長さを示している、parseメソッドからいくつかの値を返すと、次のようにそれを使用しよう:

function parse(value) { 
    if (value) { 
    return value.toLowerCase(); 
    } 
} 
ngModelController.$parsers.push(parse);