angularjs指令中link方法无法正确获取element

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angularjs指令中link方法无法正确获取element相关的知识,希望对你有一定的参考价值。

angularjs中大多在指令之中操作DOM,现在遇到一个指令中无法获取DOM的特殊情况:

var directiveCtrl=angular.module("directiveCtrl",[]);
directiveCtrl.controller("ctrlTwo",[‘$scope‘,function($scope){
    $scope.name="me";
}]);
directiveCtrl.directive("num",function(){
    return{
	restrict: ‘E‘,
	template: ‘<div ng-repeat="i in [1,2]" ng-controller="ctrlTwo">{{name}}</div>‘,
	replace:true,
	link:function(scope,ele,attr){
	    console.log(ele);
	}
    };
});

输出的是[comment]而不是[div.ng-scope.ng-binding],这样无法进行DOM元素的操作。

我的解决方法是:把

ng-repeat="i in [1,2]"

放在num标签的外层标签上,一切就正常了,当然这只是避开了问题。如果有一天知道了问题所在,我会再跟上一篇作为补充。

本文出自 “11416117” 博客,请务必保留此出处http://11426117.blog.51cto.com/11416117/1760873

以上是关于angularjs指令中link方法无法正确获取element的主要内容,如果未能解决你的问题,请参考以下文章

angularjs如何在视图渲染结束之后,或者render之后执行指令中的link方法呢?

AngularJS指令中的compile与link函数解析

将 jQuery 函数编写为 AngularJS 指令

angularjs指令中的compile详解

无法使用 AngularJS 指令更改 $templateCache 中的属性

必须正确理解的---ng指令中的compile与link函数解析