Javascript 角度ui路由器禁用autoscroll以修复闪烁

Javascript 角度ui路由器禁用autoscroll以修复闪烁,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,我有一个顶级路由,它有一个路由参数: $stateProvider.state('dashboard', { abstract: true, url: '/:name', templateUrl: 'modules/dashboard/views/dashboard.html', controller: DashboardController, controllerAs: 'dashboard', resolve: { product: ['$stateParam

我有一个顶级路由,它有一个路由参数:

$stateProvider.state('dashboard', {
  abstract: true,
  url: '/:name',
  templateUrl: 'modules/dashboard/views/dashboard.html',
  controller: DashboardController,
  controllerAs: 'dashboard',
  resolve: {
    product: ['$stateParams', 'store', function($stateParams, store) {
      return store.findWhere({name: $stateParams.name});
    }]
  }
});
:name
参数在选择选择下拉项时会更改。一旦发生变化,我将触发以下事件:

this.handleSelected = function(product) {
  $state.go($state.current.name, {name: product.name});
};
然后,子管线将填充主管线的视图(本例中仅一个):

dashboard.html
中,select下拉指令获取一个
selectedProduct
属性,我在其中传递当前的
:name
,如:

<dropdown-products selected-product="{{$stateParams.name}}"></dropdown-products>
<div ui-view></div>
但是,手动转到URL时,选择菜单不会显示所选选项,因为参数位于子路由中,而不是父路由中,再加上在每个路由中解析产品似乎违反直觉,我希望它来自顶部路由,因此只解析一次


我还尝试使用默认的
$anchorScrollProvider
并像中一样禁用它,但到目前为止运气不佳。有什么想法吗?

您可以尝试在视图上使用ng-Clope,也可以使用angular spinkit生成一个loader指令,当$stateChangeStart时显示模板,当$viewContentLoaded时将其删除


如果我有其他想法,我会让您知道。

您可以尝试在视图上使用ng-Clope,也可以使用angular spinkit制作一个加载程序指令,在加载$stateChangeStart时显示模板,并在加载$viewContentLoaded时将其删除


如果我有其他想法,我会告诉你。

我试过
ng斗篷
不起作用。我认为这个问题比看起来更麻烦。这可能是一个浏览器问题,与我在这里阅读的内容无关。在最坏的情况下,您可以尝试一下指令加载器,无论如何,我会尝试思考其他问题。我尝试了
ng斗篷
,但它不起作用。我认为这个问题比看起来更麻烦。这可能是一个浏览器问题,与我在这里读到的内容无关。在最坏的情况下,您可以尝试一下指令加载器,无论如何,我会尝试思考其他问题。
<dropdown-products selected-product="{{$stateParams.name}}"></dropdown-products>
<div ui-view></div>
$stateProvider.state('dashboard', {
  abstract: true,
  url: '/',
  ...
});

$stateProvider.state('dashboard.main', {
  url: ':name',
  resolve: {
    product: ...
  }
});