加载视图以查看问题 - AngularJS + ui.router
Loading view to view problems - AngularJS + ui.router
从另一个视图加载视图时出现问题(视图到视图)
问题:目标视图未接收正确的数据来确定要显示的内容。
注意:使用 ui.router
指数:
<section ng-if="page.header" ng-class="{'transparent-header': page.transparentHeader}" user-header></section>
<section ng-class="{'transparent-header': page.transparentHeader, 'create-event-back': page.background}" class="sec-full" ui-view></section>
<section ng-if="page.footer" user-footer></section>
路由器:
.state('LoginPage', {
url: "/login/",
data: {
name: "Login",
header: false,
footer: false,
css: false,
transparentHeader: false
},
templateUrl: "app/partials/common/loginPage.html",
controller: "loginController"
})
直接导航到视图时。一切都加载正常,但是当我从另一个视图导航时,例如:主视图>>>>用户视图,保存导航栏的<section>
不会被评估(ng-if)。
我不明白为什么。
更新我发现了问题。正在发生的事情是:当我导航到受限制的页面时,它会被重定向到登录页面。但是$state是从受限页面获取数据。
这是我在日志中得到的:
洛伊金页面声明:
Object {name: "Login", header: false, footer: false, css: false, transparentHeader: false}
受限页面状态:
Object {name: "Your Profile", header: true, footer: false, css: true, transparentHeader: true…}
控制器
.controller('appController', ['$scope','$state','$rootScope', function($scope,$state,$rootScope){
//Control header and footer views getting data from router
$rootScope.$on('$stateChangeStart', function(event, toState){
$scope.page = toState.data;
})
}]);
现在我的问题是如何防止这种情况?
您正在正确传递数据,但您可能没有正确访问它!在文档中,该示例指出,为了访问数据,您必须使用类似..
$state.current.data.transparentHeader
为此,请确保将$state对象也注入控制器。
请参阅"将自定义数据附加到状态对象"一节https://github.com/angular-ui/ui-router/wiki
相关文章:
- AngularJS UI路由器不能像ng路由器那样工作
- AngularJS ui路由器html5模式中断路由
- EJS中的Angularjs-Ui路由器参数
- 在angularjs UI网格列中选择下拉菜单不适用于外部editcellTemplate
- AngularJS UI路由器未进入默认状态
- angularjs-ui路由器父状态,参数加载在子状态之后
- Angularjs-ui路由器使用不同的参数进入相同的状态
- AngularJS ui路由器状态结构
- Angularjs:ui路由嵌套状态下的绑定不起作用
- 使用AngularJS UI路由器时出现元素绑定问题
- angularjs-ui路由器解析工厂未定义
- AngularJS - ui.router - 如何在动态添加它们后重定向到所需的状态
- Angularjs UI 多选与初始选择
- 使用AngularJS ui路由器创建类似弹出窗口的状态
- Angularjs UI视图和Rails服务器端模板路由
- angularjs+ui.router:指令控制器和链接函数之间的不同行为
- 在AngularJS ui路由器中,状态已更改,url已更改,但模板url未更改
- AngularJS : ui.router 不显示模板
- 如何在angularjs-ui-bootstrap中使用模态弹出窗口
- 在AngularJS UI路由器中动态更改视图