我正在使用AngularJS制作应用程序,并希望能够在“制表符”之间切换,并在面板/容器中来回交换不同的“部分”或html模板(使用ngInclude
)。
这是我的模板,它包含在ngView
。
<div class="row">
<div class="col-md-3">
<div class="list-group" data-fixed-sidebar data-nav-control>
<a href="#/analyze/option1" class="list-group-item" data-tab-route="/analyze/option1.*" >Analyze Option 1</a>
<a href="#/analyze/option2" class="list-group-item" data-tab-route="/analyze/option2.*">Analyze Option 2</a>
<a href="#/analyze/option3" class="list-group-item" data-tab-route="/analyze/option3.*">Analyze Option 3</a>
<a href="#/analyze/option4" class="list-group-item" data-tab-route="/analyze/option4.*">Analyze Option 4</a>
</div>
</div>
<div class="col-md-9">
<div class="panel panel-default">
<div class="panel-body">
<div ng-include="child"></div>
</div>
</div>
</div>
</div>
问题是,当我点击其中一个链接(例如,路由到#/analyze/option1
的第一个链接)时,它将重新加载我的控制器并忘记它的当前状态。我正在使用$route
和$routeProvider
,并且更喜欢使用此模块的解决方案。
答案 0 :(得分:1)
控制器是meant to be ephemeral。在我看来,正确的方法(TM)就是将必要的状态放在an service
中,它以单例方式初始化并在路由更改之间保持状态。