一旦元素可见,我需要使用ng-init调用角度控制器函数...
前:
//Do not call function as element is hidden.
<div style="display: none" ng-init="function()"></div>
//Call function as element is visible.
<div style="display: block" ng-init="function()"></div>
如何相应地检查ng-init和调用函数?
答案 0 :(得分:2)
使用ng-if
<div id="myDiv" ng-if="show" ng-init="init()"></div>
ng-if
只要表达式的计算结果为false,就不会将该元素放入DOM中。
演示:plnkr (在2秒后显示div时运行init函数)
修改强>
显然,display-property是在angular的上下文之外设置的。我很确定很难通过style属性使其工作。我可以提出的最佳建议是首先获得对div的引用,然后使用$apply
使ng-if
的表达式为真。
使用JQuery:
var scope = angular.element($('#myDiv')).scope();
scope.$apply(function() {
scope.show = true;
});
使用angular.element
获取对范围的引用,然后使用$apply
以一种方式更改属性,以便触发Angular的脏检查并使div显示。