检查Controller - AngularJS中的输入字段是否为空

时间:2016-08-08 08:45:04

标签: angularjs

我刚开始学习AngularJS。在我写的测试程序中,我需要在控制器(脚本)内检查输入字段是否为空。

以下是我写的代码

<div ng-controller="ExampleController">
    <input type="text" ng-model="userFirstName" required/><br>
    <p ng-bind="msg"></p>
</div>

<script>
    var mainApp = angular.module("mainApp", []);
    mainApp.controller('ExampleController', function ($scope) {

       if($scope.userFirstName.length === 0){
          $scope.msg = "pls enter something";
       }else{
          $scope.msg = "Something Entered";
       }
    });
</script>

在这里,作为输出,我希望看到pls enter something。但我看不到任何东西。

但如果我通过一些小的更改将脚本更改为以下内容,它会按预期显示Something Entered

<script>
   var mainApp = angular.module("mainApp", []);
   mainApp.controller('ExampleController', function ($scope) {
        $scope.userFirstName = 'Something';
        if($scope.userFirstName.length === 0){
             $scope.msg = "pls enter something";
        }else{
             $scope.msg = "Something Entered";
        }
   });
</script>

这里有什么问题?据我所知,如果第二个按预期工作,第一个应该工作。否则,两者都不应该起作用。

我想我还没有理解一些非常基本的东西。如果是这样,请描述一下我没有读过的内容。

谢谢..!

4 个答案:

答案 0 :(得分:1)

问题是您只检查范围属性是否填写一次。 (当角度初始化控制器时会发生这种情况) 您需要做的是在html中添加ng-change,然后当模型更改时,函数将再次触发。

在该功能中,您再次执行逻辑。像这样:

var mainApp = angular.module("mainApp", []);
   mainApp.controller('ExampleController', function ($scope) {
        $scope.userFirstName = '';
        $scope.checkContent = function(){
          if($scope.userFirstName.length === 0 || typeof $scope.userFirstName === 'undefined'){
             $scope.msg = "pls enter something";
          }else{
             $scope.msg = "Something Entered";
           }
         } 

   });

然后在你的HTML中:

<div ng-controller="ExampleController">
    <input type="text" ng-change="checkContent()" ng-model="userFirstName" required/><br>
    <p ng-bind="msg"></p>
</div>

答案 1 :(得分:1)

好吧,awk '/^foo/ || (/^bar/ && !(++c%4))' file 适用于数组。在这里,你没有$ cat a foo1 bar1 bar2 bar3 foo2 foo3 bar4 bar5 bar6 bar7 bar8 bar9 $ awk '/^foo/ || (/^bar/ && !(++c%4))' a foo1 foo2 foo3 bar4 bar8 类型的数组。

一样修改它
.length

请在此处找到plunker:https://plnkr.co/edit/7gc3fj8apFJnE2wNJbQ7?p=preview

希望它可以帮到你!

答案 2 :(得分:0)

尝试使用此功能,创建功能并在Change事件

上调用它
if(!$scope.userFirstName || $scope.userFirstName == null){
                $scope.msg = "pls enter something";
            }else{
                $scope.msg = "Something Entered";
            }

答案 3 :(得分:0)

var mainApp = angular.module("mainApp", []);
mainApp.controller('ExampleController', function ($scope) {
    $scope.userFirstName = '';
    $scope.checkContent = function(){
        if($scope.userFirstName)//Check Empty Field
        {
            $scope.msg = "pls enter something";
        }else{
            $scope.msg = "Something Entered";
        }
    } 

});