Javascript 如何检测ngShow DOM更改是否完成?
我的网站有一个部分,当我的用户单击表上的某一行时会显示该部分:Javascript 如何检测ngShow DOM更改是否完成?,javascript,angularjs,angular-directive,materialize,Javascript,Angularjs,Angular Directive,Materialize,我的网站有一个部分,当我的用户单击表上的某一行时会显示该部分: <div ng-show="showDetails"> <details item=selectedItem></details> </div> 我想做的是在ngshowdom操作完成时调用一个函数,该函数将调用$('select')。material_select()以正确的物化设置替换选择的输入字段 你知道我怎样才能看到DOM的变化吗?这是一种非常简单的方法,可以做你想做的
<div ng-show="showDetails">
<details item=selectedItem></details>
</div>
我想做的是在ngshowdom操作完成时调用一个函数,该函数将调用$('select')。material_select()
以正确的物化设置替换选择的输入字段
你知道我怎样才能看到DOM的变化吗?这是一种非常简单的方法,可以做你想做的事情。假设您有一个显示表单的ngClick函数,在该函数中设置showDetails表单,您可以使用$timeout函数,该函数在检查DOM后调用。DOM的脏检查只是在摘要周期结束时检查范围值。Angular从其以前的值内部检查所有范围值,并相应地更新模型
$scope.clickHandler = function() {
$scope.showDetails = true;
$timeout(function(){
// ng if has just concluded
});
}
这是一种非常非常老套的做你想做的事情的方式。假设您有一个显示表单的ngClick函数,在该函数中设置showDetails表单,您可以使用$timeout函数,该函数在检查DOM后调用。DOM的脏检查只是在摘要周期结束时检查范围值。Angular从其以前的值内部检查所有范围值,并相应地更新模型
$scope.clickHandler = function() {
$scope.showDetails = true;
$timeout(function(){
// ng if has just concluded
});
}
您还可以组合
$timeout
服务和元素的ng init
指令:
<div ng-init="init()" ng-if="showDetails">
<details item=selectedItem>selectedItem</details>
</div>
选择项
注意,我用“ng if”替换了ng show
,它将在每次重新渲染元素时激发
plunker:您还可以将
$timeout
服务和元素的ng init
指令组合在一起:
<div ng-init="init()" ng-if="showDetails">
<details item=selectedItem>selectedItem</details>
</div>
选择项
注意,我用“ng if”替换了ng show
,它将在每次重新渲染元素时激发
普朗克:我来试试。我来试试。