【问题标题】:how to detect value null in ng-change in controller如何检测控制器中ng-change中的值null
【发布时间】:2018-04-07 06:20:12
【问题描述】:

这是我的看法

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。当我的输入类型为空时,我想提醒 false。

【问题讨论】:

  • 你检查我的答案了吗?您的代码也与指令 string-to-number 完美配合
  • 你没有我的指令代码?

标签: javascript angularjs coffeescript


【解决方案1】:
 $scope.checkMynumber = function (number) {
   if(number) {
     alert(true)
   } else {
     alert(false)
   }
  }

检查这个小提琴https://jsfiddle.net/aswathyb950/9jfww52h/

【讨论】:

    【解决方案2】:

    你可以使用

    $scope.checkMynumber = function(number){ 如果(数字!= null) 警报“真实” 别的 警报“假” }

    【讨论】:

    • 它也提醒 true
    • 我认为你的值可能是未定义的使用 angular.isUndefined(val) || val === null
    【解决方案3】:

    删除三元运算符并坚持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>

    【讨论】:

      【解决方案4】:

      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>

      【讨论】:

        【解决方案5】:

        因为我的指令字符串到数字感谢大家现在正在工作

        【讨论】:

          【解决方案6】:

          我不明白为什么这里的几乎每个答案都在 .js 中而不是 .coffee 中,就像有问题一样。无论如何你可以改进你的代码

          1. ng-model="mynumber" ng-change="checkMynumber(mynumber)" 我猜mynumber 是你的作用域变量,那你为什么要把它传递给方法呢? (我没有完整的代码,但你在那里使用胖箭头,否则我会找到理由将其作为参数传递)

          2. 你的方法 checkMyNumber 只能这样:

            $scope.checkMynumber = =&gt; alert $scope.mynumber? + ""

          【讨论】:

            猜你喜欢
            • 2016-07-26
            • 1970-01-01
            • 2016-10-25
            • 1970-01-01
            • 1970-01-01
            • 2023-03-21
            • 1970-01-01
            • 2016-09-23
            • 1970-01-01
            相关资源
            最近更新 更多