Angularjs ui路由器初始加载时的状态数据
Angularjs ui-router state data on initial load
我的路线是这样的:
...
.state('some.route', {
url: '/some/route',
template: 'someTemplate.html',
controller: 'SomeCtrl'
data: {
title: 'Some Title'
}
})
...
每条路由都有一个data.title
属性。
我也有这样的指令
...
app.directive('titleBar', function($state, $rootScope){
return {
restrict: 'AE',
replace: true,
link: function(scope, element, attrs){
scope.title = $state.current.data.title; // On initial load, find data.title and bind it
$rootScope.$on('$stateChangeStart', function(e, toState){
scope.title = toState.data.title; // On state change, bind new data.title
}
},
template: '<div class="title-bar"> {{ title }} </div>'
};
});
当您浏览状态时,该指令运行良好,并绑定适当的标题。
但是当我进行完全刷新时,它不会返回我刷新的状态的正确数据。相反,它会返回一些抽象的基本状态,比如:
console.log($state.current);
>>>> OUTPUT
{
abstract: true,
name: "",
url: "^",
views: null
}
有什么想法吗?
所以我弄清楚了为什么会发生这种情况,并且仍在努力寻找解决方案。
指令在主布局中,在ui视图之前。因此,当您重新加载页面时,状态显然是根状态,然后在加载视图时更新根状态。
解决方案更新:
我现在使用的不是$on('$stateChangeStart')
,而是$on('$viewContentLoaded')
。
相关文章:
- 如何在具有某些 UI 视图的状态中管理工厂单个请求数据
- 来自应用程序状态的Jquery数据表源
- 基于javascript中的状态字段对动态行数据进行动态着色
- 美国地图插件,具有状态数据/悬停功能的新按钮
- 如何在状态输入ui路由器时立即显示模板,然后当承诺被解决时显示数据
- 无限滚动,动态数据按上次修改状态排序
- ReactJS加载有状态数据,优化
- 在状态更改时发送带有状态数据的 AJAX 请求
- 当用户单击浏览器后退按钮时,无法在 Angular js 中获取以前的状态数据
- 如何将全局状态数据处理到Redux中的深度嵌套组件中
- 使用基于应用程序状态/数据的UI路由器
- Angularjs ui路由器初始加载时的状态数据
- Ionic混合应用程序,在退出时保存应用程序状态/数据
- 通过JSON响应发送状态数据到POST -通过JavaScript解析
- 访问与Redux状态数据一起发送给组件的props
- 如何在使用Redux进行异步操作调度后检索状态数据
- 通过web更改Firebase上的状态数据(true/false)
- Reactjs:立即使用更新的状态数据(来自存储)
- 在ReactJS中,如何在将新值推入数组之前验证状态数据
- 修改非子react组件的状态数据