如何在AngularJS中获取Html元素属性?

时间:2015-07-16 18:09:43

标签: javascript html angularjs

编辑:每个人都使用各种切线,但问题仍然存在 - 如何在角度控制器中获取html元素的属性?

这是一个plnkr尝试:http://plnkr.co/edit/0VMeFAMEnc0XeQWJiLHm?p=preview

$( document ).ajaxComplete(function( event, xhr, settings ) {
  console.log(xhr.responseText);
});

如果您需要确信这实际上是必要的 - 我需要找到用户滚动div的时间,如下所示:http://jsfiddle.net/rs3prkfm/请注意,这与问题无关,只是一个场景。问题很简单 - 我如何获得属性的值?

参考文献:
无用的官方文档:https://docs.angularjs.org/api/ng/function/angular.element
唯一有用的链接仍然不起作用:http://mlen.io/angular-js/get-element-by-id.html

3 个答案:

答案 0 :(得分:1)

您应该使用指令操作DOM。控制器应该只操纵应用程序的数据并将其提供给html。

如果您对Controller进行直接操作,则不能将多个视图绑定到控制器。此外,如果你更改html中一个标签的id,并且你直接在你的控制器中操作它,控制器将会中断。

阅读本文:

http://ng-learn.org/2014/01/Dom-Manipulations/

希望它有所帮助。

答案 1 :(得分:1)

您可以使用元素api https://docs.angularjs.org/api/ng/function/angular.element

但是,应该只有极少数情况下你真的需要它。

答案 2 :(得分:1)

使用angular.element:

var myElem = angular.element("#testDiv"); // here you get your div
var myAttr = myElem.attr("name"); // you get: "testDiv"

请记住,使用jqlite有限制。如果你想要jquery元素的完整功能,请导入一个完整的" jquery.js"在导入角度脚本之前。

但是,要操纵DOM,你应该使用大多数答案所述的指令。