Tag: angular ui router

如何使用UI-Router仅更新命名视图

我正在创建一个网络应用程序,以帮助学生在科学,历史和数学。 当你第一次登陆网站时,我有一个家/登陆页面。 点击开始后,我将路由到/考试/说明。 我的每个步骤说明,数学和科学都是我加载到ui-view=”exam-detail”模板。 目前,当我通过科学导航和指导时,整个ui-view会加载。 理想情况下,我只想要一个用于分页的区域和一个主题区域,并且只希望用正确的模板更新ui-view=”exam-detail” 。 我根本没有使用UI-Router,非常感谢任何帮助。 的index.html 状态考试> exam.html route.js (function() { ‘use strict’; angular .module(‘studentPortal’) .config(routeConfig); function routeConfig($stateProvider, $urlRouterProvider) { $stateProvider .state(‘home’, { url: ‘/’, templateUrl: ‘app/main/main.html’, controller: ‘MainController’, controllerAs: ‘main’ }) .state(‘exam’, { url: ‘/exam/:step’, abstract: true, templateUrl: ‘app/state-exam/exam.html’, controller: ‘ExamController’, controllerAs: ‘examController’, }) .state(‘exam.instructions’, { url: ‘/instructions’, views: { ‘exam-pagination’:{ […]

jQuery scrollTop()为所有元素返回0

在我的工作中,我们有一个用AngularJS创建的单页网站。 我们正在使用ui-router插件(版本0.2.0)。 最近我注意到当从一个状态移动到另一个状态时,窗口不会滚动到顶部。 我甚至试图在每次状态更改时使用jQuery的scrollTop()函数手动滚动到顶部(使用$stateChangeSuccess事件)。 但它没有用。 所以我开始调查,我注意到scrollTop()为页面上的每个元素返回0。 不仅如此,当我将window.scrollY打印到控制台时,我得到0(无论我在页面上的哪个位置)。 不仅在我的代码中,而且即使我只是在chrome dev工具控制台中编写它。 我用AngularJS和ui-router编写了几个应用程序,它只发生在这个特定的应用程序中。 我已经检查过是否覆盖了scrollTop()函数甚至是window.scrollY字段,但是没有找到任何东西。 我尝试使用ui-view和autoscroll=”true”并使用autoscroll=”false” ,但它并没有什么区别。 我也试过给html和body元素height:100% ,我也没试过。 但没什么。 我真的不知道接下来该做什么。 我无法重现这个问题,但如果您认为我应该在这里发布任何可以提供任何帮助的代码,我会很乐意这样做。 谢谢! 编辑: 我在控制台上运行此function: var l = $(‘*’).length; for(var i = 0; i 0) { console.log(elem, elem.scrollTop()); } } 该function只打印出一个带有顶部滚动的元素。 元素是一个包装div,它包含整个内容和主视图(我的应用程序中有嵌套视图)。 如果我在这个元素上使用scrollTop(0) ,我得到了我想要的东西,但它只处理症状,而不是真正的问题。

AngularJS:$ viewContentLoaded在部分视图出现之前触发

对于局部视图,我想做一些我通常用$(document).ready(function() {…})做的JavaScript,比如将venet监听器绑定到元素。 我知道这对AngularJS和加载到“根”视图中的部分视图不起作用。 因此,我向侦听器添加了一个侦听器,侦听器监听$viewContentLoaded事件。 调用侦听器的函数,因此事件被触发但在我看来好像是在呈现局部视图之前。 当我在侦听器的函数中设置断点并使用firebug调试它时,我也没有看到元素,函数中的jquery选择也没有找到局部视图的元素。 这就是控制器的样子: angular.module(‘docinvoiceClientAngularjsApp’) .controller(‘LoginController’, function ($scope, $rootScope) { $scope.$on(‘$viewContentLoaded’, function(event) { console.log(“content loaded”); console.log($(“#loginForm”)); // breakpoint here }); […] 我想我做错了,因为如果这是一个常见的错误,必须在stackoverflow上发布更多post。 当我使用ui-router和ui-view时 ,我会给你一个路由文件的摘录: angular .module(‘docinvoiceClientAngularjsApp’, [ ‘ui.router’, ‘ngAnimate’, ‘ngCookies’, ‘ngResource’, ‘ngMessages’, ‘ngRoute’, ‘ngSanitize’, ‘ngTouch’ ]) .config(function ($routeProvider, $stateProvider) { $stateProvider .state(‘login’, { url: ‘/’, templateUrl: ‘components/login/loginView.html’, controller: ‘LoginController’ }) .run([‘$state’, function […]