父模板也显示在子状态。如何摆脱这个问题?

时间:2017-03-04 07:37:34

标签: angularjs angular-ui-router

我正在使用 angular ui router 0.2.15 ,并且有一页 / profile ,现在想要点击按钮编辑个人资料,网址变为 /简档/编辑

现在我对named views和UI路由器的嵌套视图概念感到有些困惑,并尝试了两者,但问题仍然存在。

  1. 使用嵌套状态

           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);
        }}
    
  2. 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'
                }
            })
    

    在这种情况下我的问题是当我点击编辑页面时,它也会显示父视图的内容。如何处理?

1 个答案:

答案 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