我们最近将我们的应用程序从 ng-route 移到了 Ui-Router。我们正在尝试重构代码中有关路由的一些要点。
我们的应用程序中有一个列表视图和一个详细视图。详细视图将显示为列表视图顶部的弹出窗口,因此为了不一次又一次地初始化所有列表控制器逻辑,我们将详细视图定义为子视图状态。它看起来像这样:
$stateProvider
.state('list',
{
url: "/",
template: '<list-directive></list-directive>'
})
.state('list.detail',
{
url: "/detail/{item_id}",
template: '<detail-directive></detail-directive>'
})
它实际上按预期工作。当我从列表视图打开详细视图时,列表视图(我的意思是控制器)不会再次运行,当我关闭详细视图时,列表视图仍然存在。
但现在我们也想直接调用详细视图,而不撤销父视图。目前,当我直接调用详细状态时,父控制器也运行..我该如何实现这一点?
父子关系不适合我们的场景吗?