删除默认 ui-router 状态,然后嵌套状态在 AngularJS 中处于活动状态

Removing default ui-router state then nested state is active in AngularJS

这可能是一个简单的答案,但我很难全神贯注。我正在构建一个 Angular 仪表板,登录后,用户可以浏览到 /dashboard;我还有用于浏览仪表板的嵌套状态。以下是我的状态设置方式(为简洁起见缩短)

app.js

.state('dashboard', {
      url: '/dashboard',
      templateUrl: 'views/dashboard.html'
})
.state('dashboard.new', {
      url: '/new',
      templateUrl: 'views/dashboard.new.html'
});

dashboard.html

<div page-header></div>
<div dashboard-menu></div>
<section>
    <div class="container mt48">
        <div class="row">
            <div class="col-sm-12 text-center">
                <h4 class="uppercase mb16">This is the dashboard default page</h4>

                <p class="lead mb64">
                    FSed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut
                    odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
                </p>
            </div>
        </div>
        </div>
    </div>
</section>
<div ui-view></div>

虽然与这个问题无关,但我已经为 page-header 和 dashboard-menu 创建了两个指令(以防万一你想知道那是什么)

浏览器视图:(编辑以添加整个 header 的另一个屏幕截图)

我想知道当活动状态被激活时如何做 - 在这个例子中,dashboard/new/dashboard 页面上的默认内容将不会显示。

感谢您的浏览 - 请问我任何问题,因为我知道我想问什么,并且希望我没有混淆。谢谢。

我认为最快的方法是使用 ng-show 隐藏默认文本。状态可以由 $state 对象确定。或者,也许它可以通过路由本身的 resolve 函数注入。