无法在角度js中获得此值

时间:2015-02-20 12:19:58

标签: javascript jquery angularjs

当我试图在角度控制器中获取当前元素值时,它将错误抛出为

  Cannot read property 'toLowerCase' of undefined
    at m.fn.extend.val       (jquery.min.js:4:8638)
    at h.promise.then.$scope.validatev     (product.js:471:43)

var productApp = angular.module(' productApp',[' ngRoute',' ngProgress']);

的Javascript

 productApp.controller('AddOrderController', 
   function($scope,$http) {
       $scope.validatev = function (dis,v)
                         {
                          console.log(angular.element(dis).val()); //this line throwing error as above mentioned
                        }
});

HTML

 <input type="text" ng-blur="validatev(this,'req:true');" class="form-control"/>

我无法通过ng-model / name属性获取值,因为这些是我的代码中的动态元素,因此我尝试通过关键字获取该元素值。请帮我在控制器中获取 this

2 个答案:

答案 0 :(得分:1)

为什么不在输入中使用ng-model?

 <input type="text" ng-model="modelRef.thingToValidate" ng-blur="validatev(modelRef);" class="form-control"/>

然后在你的JS中你有一个对输入值的引用..

$scope.validatev = function (modelRef)
                        {
                          console.log(modelRef.thingToValidate); 
                        };

注意我没有对此进行过测试,但它只是演示了ng-model的使用情况..

示例:Angular Form Documentation

答案 1 :(得分:0)

您可以使用$event对象:

<强>的Javascript

 productApp.controller('AddOrderController', 
   function($scope) {
       $scope.validatev = function (event, v) {
           console.log(event.currentTarget, v);
       }
});

<强> HTML

 <input type="text" ng-blur="validatev($event,'req:true');" class="form-control"/>