我有以下控制器...我正在尝试从HTML输入中获取...c
和name
属性,但我收到错误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;
}
});
还有其他办法吗?
答案 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;
}