ell*_*t-j 7 javascript angularjs
我已经看到了一些代码示例,其中$ element被注入到角度控制器中.我花了一些时间试图找到$元素的任何文档,但还没有找到任何在angulars官方文档.
什么是$ element服务,我何时应该使用它,以及它使用的最佳实践是什么?
$element是一个jqlite(或jQuery,如果它可用)包装对象,包含对一些DOM对象的引用以及一些与它们交互的有用函数.任何时候您需要对DOM进行更改$element.
例如......如果您需要将一个类添加到指令DOM对象,您将注入$element并调用
$element.addClass("my-class")
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看文档
当您注入$element控制器时,您将获得调用控制器的元素的 JQlite 包装版本。在指令控制器的情况下,它将是指令附加到的任何元素。我能找到的文档中唯一提到的是$compile description。
您可以在以下示例中看到:
angular.module('myApp', [])
.controller('testCtrl', function($scope, $element) {
console.log($element);
})
.directive('testDirective', function() {
return {
controller: function($scope, $element) {
console.log($element);
}
}
})Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="myApp">
<div ng-controller="testCtrl" id="controller">Controller</div>
<div test-directive id="directive">Directive</div>
</body>Run Code Online (Sandbox Code Playgroud)
最佳实践是,除了在指令中,更具体地说,通常在链接函数中,您不要进行任何 DOM 更改。在这种情况下,您几乎不想$element在控制器中使用 ,因为这很可能意味着您从错误的角度接近解决方案。
| 归档时间: |
|
| 查看次数: |
9631 次 |
| 最近记录: |