javascript - 使用 AngularJS 获取属性值

标签 javascript angularjs

我有以下 Controller ...我试图从 HTML 输入中获取 namerating 属性,但我收到错误 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;
}

供引用 - http://plnkr.co/edit/ZQlEG33VvE72dOvqwnpy?p=preview

关于javascript - 使用 AngularJS 获取属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31334869/

相关文章:

javascript - Laravel 和 Angularjs 部分

javascript - 为什么 if else 在 javascript 中不起作用?

javascript - 如何使用jqPlot?

javascript - 按 3 个值对 JavaScript 数组进行排序

angularjs - 尝试基于常量在 Controller 中动态设置templateUrl

javascript - AngularJs 中数字的正则表达式

javascript - 使用 Uploadify 时无法触发 onComplete 和 onCompleteAll 事件

javascript - 将页面显示为弹出窗口

javascript - 使用 AngularJS 通过 JSON 访问图像数组

javascript - Javascript 中的回调真的是方法调用吗?如果是的话,它们是 'cascaded' 吗?