如何在控制器

时间:2017-04-27 05:47:13

标签: javascript angularjs coffeescript

这是我的观点

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。我想在输入类型为空时提示false。

6 个答案:

答案 0 :(得分:2)

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

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

答案 1 :(得分:1)

您可以使用

$ scope.checkMynumber = function(number){     if(number!= null)        警告"真"     其他        警告"假"  }

答案 2 :(得分: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>
&#13;
&#13;
&#13;

答案 3 :(得分: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>

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

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

  2. 您的方法checkMyNumber只能是这样的:

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