当前位置: 首页 > 面试题库 >

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

田彬郁
2023-03-14
问题内容

在我的应用程序中的多条路线之间导航时,我在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);

问题答案:

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

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

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



 类似资料:
  • 问题内容: 我尝试将Angle.js与PhoneGap一起使用,它在chrome浏览器上可以正常工作,但是 在ng-view标签上不起作用,并且在模拟器上运行angular模块时不会调用它。你有什么主意吗? 我的代码是这样的。 index.html index.js router.js 问题答案: 尝试使用bootstrap api方法在deviceReady上手动启动应用程序。就像是: http

  • 问题内容: 我在PhoneGap中遇到ngView的问题。 一切似乎都可以正常加载,我什至可以使用ng-controller使基本控制器正常工作。但是,当我尝试在ngView中使用路由时,什么也没发生。 index.html app.js 每次单击链接时,Eclipse记录器都会显示该链接,而在没有链接的情况下尝试该链接会引发一个错误,即找不到该路径。 从我在其他任何地方已经做好的准备,这应该可以

  • 我在div上使用了,它可以正常工作,但是当我在其他输入上使用时,div上的停止工作。 工作代码[单击时调用附加项(项目)] 破损的代码[addItem(项目)未被调用] 相关JS代码 这里是http://plnkr.co/edit/eI5dvczO2E1Cp1SBPgQx?p=preview点击输入将带来下拉。在一种情况下,单击下拉菜单会将项目添加到选定列表中,但在其他情况下不会。 我已经试过调试

  • 问题内容: 我已经工作了几个小时,以使我的链接可以通过AngularJS应用点击进入不同的视图。 但是,我似乎只能在Plunker上在线使用该功能。 我一直在尝试在本地计算机上测试点击功能,并且ng-view似乎未加载。当我下载我知道正确的Plunker代码时,因为它可以在Plunker上运行,所以ng- view在本地托管后似乎停止工作。 我对ng-include和我定义为自己的HTML标签的指

  • 问题内容: 我尝试使用AngularJS进行简单的选择下拉列表 这是我的代码: 格式如下: 选择下拉列表出现,但没有任何选择值,我在做什么错? 问题答案: 我相信您缺少ngModel指令,并且以错误的方式调用ng-options指令。 我在这里工作的地方做了个小矮人。

  • 问题内容: 这是显示问题的小提琴。http://jsfiddle.net/Erk4V/1/ 如果我在ng-if内部有一个ng-model,就会出现该模型无法正常工作的情况。 我想知道这是一个错误还是误解了正确的用法。 问题答案: 与其他指令一样,该指令将创建子范围。请参见下面的脚本(或此jsfiddle) 因此,您的复选框将更改子作用域的内部,而不更改外部父作用域。 请注意,如果要修改父作用域中的