我正在使用 angular ui router 0.2.15 ,并且有一页 / profile ,现在想要点击按钮编辑个人资料,网址变为 /简档/编辑
现在我对named views和UI路由器的嵌套视图概念感到有些困惑,并尝试了两者,但问题仍然存在。
使用嵌套状态
Intent intent = new Intent(AddOffers.this, AlbumSelectActivity.class);
//set limit on number of images that can be selected, default is 10
intent.putExtra(Constants.INTENT_EXTRA_LIMIT, 3);
startActivityForResult(intent, Constants.REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == Constants.REQUEST_CODE && resultCode == RESULT_OK && data != null) {
//The array list has the image paths of the selected images
ArrayList<Image> images = data.getParcelableArrayListExtra(Constants.INTENT_EXTRA_IMAGES);
Uri uri=Uri.parse(images.get(0).path);
offr_img1.setImageUri(uri);
}}
和 profile.html
.state("profile", {
url: '/profile',
controller: 'UserController',
controllerAs: 'vm',
templateUrl: 'app/views/user/profile.html',
data: {
requiresAuth: true,
pageTitle: 'Profile'
}
})
.state("edit", {
url: '/edit',
parent:'profile',
templateUrl: 'app/views/user/edit_profile.html',
data: {
requiresAuth: true,
pageTitle: 'Edit Profile'
}
})
在这种情况下我的问题是当我点击编辑页面时,它也会显示父视图的内容。如何处理?
答案 0 :(得分:2)
儿童州将被置于父母的占位符
的位置<div ui-view=""></div>
这不会隐藏父视图,只需用子模板替换该div
但我们真的可以用儿童视图替换父视图。关键是要定位index.html(root)ui-view
.state("edit", {
url: '/edit',
parent:'profile',
views: {
'@': {
templateUrl: 'app/views/user/edit_profile.html',
},
},
data: {
requiresAuth: true,
pageTitle: 'Edit Profile'
}
})
视图的神奇名称 '@'
表示 - 它是root和未命名的。有许多类似的Q&amp;答:Angular UI Router - Nested States with multiple layouts