一尘不染

使用ng-view时AngularJS document.ready不起作用

angularjs

在我的应用程序中的多条路线之间导航时,我在angularJS中遇到document.ready问题。它仅在使用ctrl +
f5(页面重新加载)时有效;似乎在页面之间导航不会将文档的状态更改为就绪。

控制者

  angular.element(document).ready(function() {
    window.scrollTo(0,90);
});

主HTML文件

<!DOCTYPE html >
<html ng-app="myApp">
    <head>
        <meta http-equiv="content-type" content="text/html;charset=utf-8" />
        <title></title>
    </head>
    <body>
        <div class="container">
            <div ng-view></div>
        </div>
    </body>
</html>

应用程式档案

var mainModule = angular.module('myApp', ['ui.bootstrap.dialog']);
function viewServiceConfig($routeProvider) {
$routeProvider.
    when('/', {
        controller: SomeController,
        templateUrl: 'somehtml.html'
    }).



    when('/someroute', {
        controller: SomeRouteController,
        templateUrl: 'someroutehtml.html'
    }).


    otherwise({
        redirectTo: '/'
    });
}

mainModule.config(viewServiceConfig);

阅读 212

收藏
2020-07-04

共1个答案

一尘不染

您可以在路由定义你的控制器即听SomeControllerSomeRouteController$viewContentLoaded事件$viewContentLoaded每次重新加载ngView内容时都会发出,并且应提供与document.readyangularjs中路由时类似的功能:

function SomeController($scope) {
   $scope.$on('$viewContentLoaded', function() {window.scrollTo(0,90);});
}

document.ready也触发只有当你加载一次index.html。加载路由配置中定义的部分模板时,不会触发该事件。

2020-07-04