簡體   English   中英

如何在控制器的ng-change中檢測值null

[英]how to detect value null in ng-change in controller

這是我的看法

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"

當我輸入我的第一個數字時,它會警告True,這是正確的,但是當我擦除輸入的數字時,它會保持警報True。 當我的輸入類型為null時,我想警告false。

 $scope.checkMynumber = function (number) {
   if(number) {
     alert(true)
   } else {
     alert(false)
   }
  }

檢查這個小提琴https://jsfiddle.net/aswathyb950/9jfww52h/

您可以使用

$ scope.checkMynumber = function(number){如果(number!= null)警報“ true”,否則警報“ false”}

刪除三元運算符,並遵守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> 

演示

 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> 

因為我的指令是字符串到數字,謝謝大家,它現在可以工作了

我不明白為什么這里幾乎每個答案都是.js而不是.coffee,就像有問題的..無論如何,您都可以改進代碼

  1. ng-model="mynumber" ng-change="checkMynumber(mynumber)"我想mynumber是您的范圍變量,那么為什么要將它傳遞給方法? (我沒有完整的代碼,但是您在那兒使用粗箭頭,否則我會找到理由將此作為參數傳遞)

  2. 您的方法checkMyNumber只能是這樣的:

    $scope.checkMynumber = => alert $scope.mynumber? + ""

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM