如何在dom完成Angularjs中的渲染后运行指令
How to run a directive after the dom finished rendering in Angularjs
我正在尝试动态渲染模板,如何在{{tag}}渲染完成后运行指令?
指令:
angular.module('services', [])
.directive('demo', function() {
return {
templateUrl: '/template.html',
restrict: 'C'
}
});
控制器:
angular.module('controller', [])
.controller('DemoCtrl', ['$scope', function($scope) {
$scope.tag = "demo";
$scope.clickHandler = function() {
// do something when click button
}
}]);
视图:
<button ng-click="clickHandler()">Button</button>
<div class="{{tag}}"></div>
您可以在directive
中使用以下结构:
app.directive('example', function() {
var directive : {
link:link,
restrict:'C',
templateUrl:'...'
}
function link($scope,$element,$attrs, $rootScope){
angular.element(document).ready(function() {
// dom here
})
}
return directive;
}
试试看它是否对你有用。
正如@Cosmo所写,它需要在链接函数中完成,但只能等待整个文档,而只能等待指令dom就绪。链接函数的第二个参数是$element您可以使用它。
app.directive('example', function() {
var directive : {
link:link,
restrict:'C',
templateUrl:'...'
}
function link($scope, $element, $attrs, $rootScope){
$element.ready(function() {
// dom here
})
}
return directive;
}
相关文章:
- 在其他javascript框架模板中运行angular指令
- 过早运行的角度组件/指令的$postLink
- 为什么ng中的自定义指令在循环完成后重复运行
- 在运行时创建指令的实例
- 在ng视图加载或指令加载后运行javascript
- 使用Angular Directive用$scope属性更新DOM-只要指令运行(无需等待事件)
- 如何在声明后运行DOM添加的指令
- 通过摘要运行验证指令
- AngularJS:如何在指令编译和链接后从指令内部运行JavaScript
- AngularJS在$http响应后运行编译指令
- 加载指令后运行函数
- 如何在运行时对元素设置ngFocus指令
- Angular JS-需要与页面上的所有指令进行通信,这些指令来自只运行一次的服务中的代码
- 如果范围值更新,则运行Angular指令
- 在angular中,是否可以在控制器运行之前让指令将变量添加到范围中
- 如何在dom完成Angularjs中的渲染后运行指令
- NG重复后运行指令
- 在ng-src之后运行指令代码
- 如何在模型绑定后重新运行指令的link函数
- Angularjs在$http成功后运行指令