AngularJS Flicker

时间:2015-09-29 07:11:30

标签: angularjs

我有一个闪烁的问题 - 这不是AngularJS的问题,而是我认为我的架构。 这不是一个大问题,但如果我可以防止这种争吵就会很好。

我有一个stateProvider,如下所示:

controller: 'MyController',
            controllerAs: 'vm',
            resolve: {
                myService: 'myService',
                function(myService, $stateParams) {
                    myService.loadMyDataFromBackend('Parameters');
                },

在此 stateProvider 中,数据通过服务加载,然后此服务(myService)保存后端数据。在我的视图中,我有 ng-repeat myService 中获取此数据:

<tr my-directive-name my-data="vm.getMyDataOverDirectiveAndControllerFromMyService()"

我现在的问题如下:

  
      
  1. 我查看数据 - &gt;一切都很好
  2.   
  3. 我离开了视图
  4.   
  5. 我回到了观点:   3.1。旧数据被查看几毫秒   3.2从后端加载新数据并保存在myService中   3.3 ng-repeat选择新数据并显示
  6.   

3.1和3.2导致闪烁。同样 ng-cloak 也不会阻止闪烁 - 我想ng-cloak会检查(旧)数据是否正常/加载 - 查看旧数据,然后接收并显示新数据 - &gt;在这种情况下,ng-cloak没有机会防止闪烁。

我现在的问题是,如果有可能在我的情况下防止这种闪烁吗?

非常感谢!

[编辑] 这是我的整个解析器,如果有人可以给我一个暗示,为了防止闪烁,我会感激不尽:

(function(){     'use strict';

angular
    .module('myproject.schedule')
    .config(configure);

configure.$inject = ['$stateProvider']; 

function configure($stateProvider) {

     $stateProvider
        .state(getXYState());

    ////////////

     function (getXYState() {
        var state = {
            name: 'auth.name',
            url: '/my/path',
            templateUrl: 'app/myhtmlpath/myhtml.html',
            controller: 'MyController',
            controllerAs: 'vm',
            resolve: {
                myService: 'myService',
                function(myService, $stateParams, $q) {
                    myService.getData('...');
                }
            }
        }
        return state;
    };
};
})();

0 个答案:

没有答案