2017-04-27 195 views
0

這是我的看法如何檢測在控制器NG-變化值空

md-input-container flex="" 
     label Mynumber 
     input type="number" ng-model="mynumber" ng-change="checkMynumber(mynumber)" step="0.01" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" string-to-number="" 

我控制器

$scope.checkMynumber = (number) => 
    if number? 
    alert "true" 
    else 
    alert "false" 

當我輸入我的第一個數字它提醒真實的,這是正確的,但是當我抹去我的輸入數字它保持警報真實。我想在我的輸入類型爲空時提醒false。

+0

你檢查了我的答案嗎?你的代碼完全符合指令'字符串到數字'也 –

+0

你沒有我的指令代碼? – wiwit

回答

1

您可以使用

$ scope.checkMynumber =功能(數字){ 如果(號碼!= NULL) 警報 「真」 其他 警惕 「假」 }

+0

它也提醒真實 – wiwit

+0

我認爲你的值可能是未定義的使用angular.isUndefined(val)|| val === null –

1

刪除三元操作符,並堅持if else條件

angular.module("app",[]) 
 
.controller("ctrl",function($scope){ 
 
$scope.checkMynumber = function(number) { 
 
    if (number) 
 
    alert("true") 
 
    else 
 
    alert ("false") 
 
    
 
} 
 

 
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<div ng-app="app" ng-controller="ctrl"> 
 
<input type="number" ng-model="mynumber" ng-change="checkMynumber(mynumber)" step="0.01" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" string-to-number=""> 
 
</div>

1

DEMO

var myApp = angular.module('myApp',[]); 
 
myApp.controller('MyCtrl', ['$scope', function($scope) { 
 
    $scope.checkMynumber = function(number) { 
 
    number ? alert("true") : alert("false"); 
 
    } 
 
}]);
<div ng-app="myApp" ng-controller="MyCtrl"> 
 
<input type="number" ng-model="mynumber" ng-change="checkMynumber(mynumber)" step="0.01" ng-pattern="/^[0-9]+(\.[0-9]{1,2})?$/" string-to-number=""> 
 
</div>

0

,因爲我的指令字符串到數字謝謝你們現在的工作