Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用AngularJS检查控制器中的输入字段是否有值_Javascript_Angularjs - Fatal编程技术网

Javascript 如何使用AngularJS检查控制器中的输入字段是否有值

Javascript 如何使用AngularJS检查控制器中的输入字段是否有值,javascript,angularjs,Javascript,Angularjs,我只是想找出如何检索scopes信息,看看它在控制器中是否有值 我需要能够写一个if语句,说明如果这个文本输入字段被填充,请执行以下操作。。。如果有别的事,做些不同的事 <form name="deadlineForm"> <div class="app-select-date"> <label for="deadline">Select deadline:</label> <input pickada

我只是想找出如何检索scopes信息,看看它在控制器中是否有值

我需要能够写一个if语句,说明如果这个文本输入字段被填充,请执行以下操作。。。如果有别的事,做些不同的事

<form name="deadlineForm">
    <div class="app-select-date">
        <label for="deadline">Select deadline:</label>
        <input pickadate ng-model="deadline" format="dd/mm/yyyy" placeholder="Select deadline"/>
    </div>
</form>

选择截止日期:

在控制器中编写此代码的最佳方式是什么?

使用
ng model=“deadline”
将其绑定到变量(
deadline

您在控制器中的签入变得非常简单:

if ($scope.deadline != null && $scope.deadline != "") {
    //do something
}
或者这甚至可以简化为

if ($scope.deadline) {
    //do something
}

简单。

您将在输入中获得如下值:

$scope.deadline
你可以检查一下

if($scope.deadline) {  //or whatever condition you have to check null or empty
   //anything you want to do
}

据我所知,这是:

<form name="deadlineForm">
    <div class="app-select-date" ng-if="deadline && deadline != ''">
        <label for="deadline">Select deadline:</label>
        <input pickadate ng-model="deadline" format="dd/mm/yyyy" placeholder="Select deadline"/>
    </div>
    <div ng-if="!deadline && deadline == ''">do something else</div>
</form>

选择截止日期:
做点别的

这对你有用吗


角度.module('app',[])
.controller('MainCtrl',函数($scope){
$scope.$watch('val',函数(现在,旧){
如果(现在){
$scope.result='有东西';
}否则{
$scope.result='什么都没有';
}
});
});

请检查工作示例:

HTML:


使用ng模型会自动将输入的任何值绑定到同名的$scope变量

当您向控制器中注入对作用域的依赖时,该变量可用于控制器中的普通JavaScript

因此,
$scope.deadline
将给出输入的文本的当前值

如何检查该值取决于何时检查该值的上下文

如果您使用的是现有函数,例如表单提交时检查字段验证的函数,那么

if ($scope.deadline) {
   // do something
} else {
  // do something else
}
就够了

如果您希望在输入字段更改时触发逻辑,则可以在控制器中使用$watch指令,如,或者可以向输入添加ng change或ng blur属性,并调用控制器端函数:

<input pickadate ng-model="deadline" format="dd/mm/yyyy" placeholder="Select deadline" ng-change="selectedDate()"/>
如果希望条件逻辑直接出现在视图中,则将实时绑定到输入字段中的值,然后
ng If
ng show
ng hide
可能会有所帮助:

<span ng-show="deadline">Show this if deadline has a value</span>
<span ng-hide="deadline">Don't show this if deadline has a value</span>
<span ng-if="!deadline">Don't render this into the DOM at all if deadline doesn't have a value</span>
如果“截止日期”有值,则显示此选项
如果“截止日期”有值,则不显示此项
如果“截止日期”没有值,则根本不要将其呈现到DOM中

使用$watch是一项成本高昂的操作,在我看来,应该尽可能避免使用$watch。你似乎是对的。。我认为是这样。。但是,如果有另一种方法在javascript端触发代码而不使用它,我也喜欢听它:DIf如果你添加一个提琴,我会把它作为正确的答案推过去。:)不错!谢谢大家的帮助!
<input pickadate ng-model="deadline" format="dd/mm/yyyy" placeholder="Select deadline" ng-change="selectedDate()"/>
$scope.selectedDate = function(){
    if ($scope.deadline) {
       // do something
    } else {
      // do something else
    }
}
<span ng-show="deadline">Show this if deadline has a value</span>
<span ng-hide="deadline">Don't show this if deadline has a value</span>
<span ng-if="!deadline">Don't render this into the DOM at all if deadline doesn't have a value</span>