我有以下 Controller ...我试图从 HTML 输入中获取 name
和 rating
属性,但我收到错误 TypeError : angular.element(...).getAttribute 不是函数
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;
}
});
HTML
<div ng-controller="courseReview">
<!-- radio input -->
<input class="star-5" id="wstar-5" rating="5" type="radio" name="welcome" ng-click="rateThis(this)"/>
</div>
还有其他方法吗?
最佳答案
根据文档“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 变化
$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;
}
关于javascript - 使用 AngularJS 获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334869/