AngularJS如何动态获取表单中的输入的ng-model值或

时间:2016-05-20 08:30:25

标签: javascript angularjs angularjs-scope angular-ngmodel

我有一个表单,其中包含为每个输入定义了ng-model的输入:

<form>
<input type="date" ng-model="dateFilterInput" id="dateFilter" class="...">
<select class="..." id="authorFilter" ng-model="authorFilterInput">   
...
</select>
<input type="text" class="..." id="categoryFilter" ng-model="categoryFilterInput">
</form>

由于我的表格可以动态地进一步输入(使用ng-repeat),我想检查每个输入是否为空动态使用ng-model

我正在为表单中的每个输入执行foreach循环,并使用ng-modal name(string)作为参数调用此函数:

$scope.isEmpty = function(ngModelInput) {
      if(modelInput == "" || typeof modelInput == 'undefined') {
        //do something if field is empty...
      }
};

$scope.isEmpty = function(ngModelInput) {
      if($scope.modelInput == "" || typeof $scope.modelInput == 'undefined') {
        //do something if field is empty...
      }
};

但这不起作用,因为ngModelInput是一个字符串。

例如:

想象一下ngModelInput = "dateFilterInput"

如何翻译:

$scope.ngModelInput(怎么写呢?)

要做到这一点:

$scope.dateFilterInput 

希望你明白我的意思^^

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

修改isEmpty函数,如下所示,这应该可以解决您的问题。 不要将ng用作任何变量的前缀,因为ng是一个有角度的保留关键字,它可能会混淆其他开发人员。

import uuid
from django.db import models

class MyUUIDModel(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    # other fields

上面的代码将传递给$scope.isEmpty = function(modelInput) { if($scope[modelInput] == "" || typeof $scope[modelInput] == 'undefined') { //do something if field is empty... } }; 函数的任何参数(字符串),并检查$ scope对象中的特定名称,并根据它给出值。