2016-10-04 3 views
0

以下のコードは、入力タイプがテキストの場合にのみ機能し、タイプがnumberの場合は機能しません。angle型がinput type = "number"で機能しない

<div ng-app="myApp" ng-controller="myCtrl as model"> 
<input type="text" ng-model="cero" ng-decimal > 
</div> 


angular 
    .module("myApp",[]) 
    .controller('myCtrl', function($scope){ 
     var model=this; 
    }) 
    .directive('ngDecimal', function ($parse) { 
     var linkFunction =function(scope, element, attrs){  
      element.bind("keypress", function(event) { 
       if(event.which === 13) {  
        scope.$apply(function(){ 
         scope.$eval(attrs.format, {'event': event}); 
         if(scope.cero===undefined || scope.cero===''){ 
          scope.cero="0.", 
          event.preventDefault(); 
         }else{ 

         } 
        }); 
       } 
      }); 
     }; 
     return{ 
      restrict : 'A', 
      scope:{ 
       cero: '=ngModel' 
      }, 
      link: linkFunction 
     } 
    }); 

私が助けが必要なのは、タイプを番号に変更してコードを動作させることです。コードはCodePenにもあります。

+1

あなたは問題を説明していません。 – Amy

+0

おそらく 'scope.cero =" 0 "、" –

+0

としようとしているかもしれません。あなたはあなたの質問を精緻化できますか? –

答えて

1

更新ペン:制約はあなたがに

scope.cero = "0." // string value 

を割り当てることができないという番号でhttp://codepen.io/anon/pen/QKOVkP?editors=1011

作品、 type="number"割り当てたい最小番号に置き換えてください。

scope.cero = parseFloat("0.01") // parseFloat("0.") won't work 
+0

はい、完璧ですが、条件は、私はユーザーが書いたものを排除しませんでしたが、もはや動作しない、あなたはそれを知っていますか? –

+0

は 'alert()'とplunkerを更新し、両方の方法で動作し、条件に 'scope.cero === null'が追加されているかどうかを確認します - http://codepen.io/anon/pen/QKOVkP?編集者= 1011 – Aks1357

+0

はい、完璧です –

1

else条件にこれを追加します。ここで

を10進数に

scope.cero = parseFloat(scope.cero).toFixed(2); 

変換文字列はコードです:working code

+0

私は入力を変更していただきありがとうございますタイプ番号は動作しませんhttp://codepen.io/fernandooj/pen/amVaQm?editors=1011 –

関連する問題