使用AngularJS获取getAttribute值

时间:2015-07-10 07:24:12

标签: javascript angularjs

我有以下控制器...我正在尝试从HTML输入中获取...cname属性,但我收到错误rating

TypeError: angular.element(...).getAttribute is not a function

HTML

app.controller('courseReview', function ($scope, $http) {

  $scope.rateThis = function rateThis(el){
    var elName = angular.element(el).getAttribute('name');
    var rating = angular.element(el).getAttribute('rating');
    document.getElementById(elName+'Rating').value = rating;
  }
});

还有其他办法吗?

1 个答案:

答案 0 :(得分:15)

根据文档" https://docs.angularjs.org/api/ng/function/angular.element",获取您需要使用的元素的属性

.attr('name');

取代

.getAttribute('name');

重要

您在html中传递this,此处this不会将DOM元素传递给函数,而是会引用范围。传递当前元素传递$event

HTML更改

ng-click="rateThis(this)"ng-click="rateThis($event)"

JS Change

$scope.rateThis = function rateThis($event){
    var elName = angular.element($event.target).attr('name');
    var rating = angular.element($event.target).attr('rating');
    document.getElementById(elName+'Rating').value = rating;
}

供参考 - http://plnkr.co/edit/ZQlEG33VvE72dOvqwnpy?p=preview