AngularJS ui-路由器 - 视图在重新加载时消失

AngularJS ui-router - view disappears on reload

最近我开始使用ui-router来管理我的页面状态。

我注意到,当我第一次 运行 服务器时,内容还在,但如果我浏览页面或重新加载页面,内容就会消失。

我知道 ui-router 上有一个错误可能会导致此问题。我更新了 ui-router 但错误仍然存​​在。

有没有人设法找到修复程序或解决它?

编辑----

我的调查让我相信它与 ui-router 无关,更多的是与应用程序完成承诺所需的时间有关。作为 jQuery

的一部分,我将在 setTimeout 上收到违规警告

所以我在上次编辑中部分正确,因此得到了这个答案; jQuery 与我的问题有关(通过使用承诺来检索数据),但它也与 ui-router 的工作方式有关:

加载页面内容时,ui-router 将使用 GET 请求提供的数据管理第一次加载(和后续重新加载)。

因为这是一个承诺,所以不能保证(尤其是当您增加数据库时)数据会及时出现以呈现页面。

为避免发生这种情况,请将解析 属性 作为 ngRoute 的一部分。 属性 允许在呈现 DOM.

之前加载所有必要的数据

如果您想了解更多信息,请关注下面的 link:

https://medium.com/opinionated-angularjs/advanced-routing-and-resolves-a2fcbf874a1c

我的代码如下:

App.js

'use strict';


 angular
    .module('knoweeApp', ['ui.router'])
    .config(['$stateProvider','$urlRouterProvider',function($stateProvider,$urlRouterProvider) {

        $stateProvider
            .state('home', {
                url:'/',
                templateUrl: 'views/user.html',
                controller: 'UserCtrl as user',
                resolve: {
                    user: function(userFinder) {
                        return userFinder.getUsers();
                    }
                }
            })

            .state('teacher', {
                url:'/teacher/:name',
                templateUrl: 'views/teacher.html',
                controller: 'TeacherCtrl as teacher'

            });

        $urlRouterProvider.otherwise('/');

    }]); 

服务:userFinder

'use strict';

/**
 * @ngdoc service
 * @name knoweeApp.userFinder
 * @description
 * # userFinder
 * Service in the knoweeApp.
 */
angular.module('knoweeApp')
  .service('userFinder', function () {
    // AngularJS will instantiate a singleton by calling "new" on this function

    this.getUsers = function (){
        return $.get('users.json');
    };

  });

控制器:UserCtrl


'use strict';

angular.module('knoweeApp')
    .controller('UserCtrl', function (userFinder,user) {

    this.teachers = user;

    this.increment = function (item) {
        item.rating += 1;
    };

    this.decrement = function (item) {
        item.rating -= 1;
    };

});


希望对您有所帮助,如有疑问请联系我