我想知道 Angular JS 是否有办法识别 View 已完全加载。我需要调用一个关于路线更改的函数。我用 $routeChangeSuccess
尝试过。但该函数是在 View 完全加载之前调用的。有什么办法可以做到这一点吗?
例如,我有一个导航菜单,我需要在根目录更改时激活菜单项。我有一个 css 类 active
用于显示菜单项处于事件状态。我写了一个函数来使它活跃。如果网址为 www.myweb.com/#/dashboard,则 dashboard 菜单应处于事件状态。该功能运行完美。但问题是在 View 完全加载之前调用函数。因此它不会激活菜单项,因为菜单项不存在。
如果您有解决方案,请告诉我们。
最佳答案
我真的不知道这是否是一个很好的解决方案。
通常的工作方式是等待运行一个$digest
循环,该循环将渲染 HTML,然后执行 DOM 操作调用。这可以通过将用于设置 active
类的调用包装在具有 0
延迟的 $timeout
调用中来完成,这将导致其执行在下一个刻度。
请注意,如果您使用 setInterval
,那么您需要一个 scope.$apply
来告诉 Angular 重新运行 $digest
> 循环。
示例
app.directive('myDir', function ($timeout) {
return {
template: '<div>Message</div>',
link: function (scope, elem) {
$timeout(function () { elem.find('div').addClass('active'); });
}
};
});
关于javascript - 如何在 Angular Js 中找到完全加载的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20284828/