2016-10-04 23 views
0

下面的代碼的工作,只有當輸入類型是文本,並且當類型是數它不工作。角指令不與輸入類型工作=「號碼」

<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

更新筆:http://codepen.io/anon/pen/QKOVkP?editors=1011

工程與數量,約束是不能分配

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

到一個type="number"因此將其替換爲您要分配的最小數量,也許

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

是完美的,但條件,所以我沒有消除用戶已經寫了,但不再有效,你知道嗎? –

+0

更新plunker用'警報()',工作左右逢源,還要檢查是否條件'scope.cero === null'已加入的條件 - http://codepen.io/anon/pen/QKOVkP?編輯= 1011 – Aks1357

+0

是完美的,謝謝 –

1

在else條件中加上這個。

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

字符串轉換爲十進制

下面是代碼:working code

+0

感謝這段代碼,但如果我改變輸入到鍵入數字不工作http://codepen.io/fernandooj/pen/amVaQm?editors=1011 –