编辑:每个人都走了各种各样的正题,但问题仍然存在-如何在角度控制器中获取html元素的属性?
这是一个plnkr尝试:http://plnkr.co/edit/0VMeFAMEnc0XeQWJiLHm?p=preview
//$scope.myElem = angular.element('testDiv'); //this breaks angular
$scope.myElem = $document.find('testDiv'); //this doesn't break angular, but unclear what it returns
$scope.myAttr = $scope.myElem.name; //this returns nothing如果你需要让人信服这实际上是必要的-我需要找到当用户滚动一个div时,如下所示:http://jsfiddle.net/rs3prkfm/注意,这与问题无关,只是一个场景。问题很简单--如何获取属性的值?
参考文献:
无用的官方文档:https://docs.angularjs.org/api/ng/function/angular.element
唯一有用但仍然不起作用的链接:http://mlen.io/angular-js/get-element-by-id.html
发布于 2015-07-17 02:27:38
您可以使用element api https://docs.angularjs.org/api/ng/function/angular.element
不过,你真正需要它的场合应该只有很少的几个。
发布于 2015-07-17 02:26:48
您应该使用指令来操作DOM。控制器应该仅操纵应用程序的数据并将其提供给html。
例如,如果您在控制器上有直接操作,则不能将多个视图绑定到控制器。另外,如果你在html中更改了一个标签的id,并且你直接在你的控制器中操作它,那么控制器就会崩溃。
请阅读以下内容:
http://ng-learn.org/2014/01/Dom-Manipulations/
希望能有所帮助。
发布于 2015-07-17 02:31:32
使用angular.element:
var myElem = angular.element("#testDiv"); // here you get your div
var myAttr = myElem.attr("name"); // you get: "testDiv"请记住,使用jqlite有局限性。如果您想要jquery元素的完整功能,请在导入您的angular脚本之前导入一个完整的"jquery.js“。
但是,要操作DOM,您应该使用大多数答案中所述的指令。
https://stackoverflow.com/questions/31461537
复制相似问题