Нужно вызвать ng-switch по URL или $location
Я пытаюсь использовать URL для вызова элемента вкладки. Например, URL, как: localhost:9000/widget&view=map
появится на странице с выбранной вкладкой карты и отображением тела вкладки карты.
<div class="search-result-tab" ng-init="selectTab='list'">
<ul class="nav tab-header">
<li ng-class="{active: selectTab=='list'}" ng-click="selectTab='list'; changedTab()">
<a href={{listTabURL}}>List</a>
</li>
<li ng-class="{active: selectTab=='map'}" ng-click="selectTab='map'; changedTab()">
<a href={{mapTabURL}}>Map</a>
</li>
</ul>
<div class="tab-body" ng-switch on="selectTab">
<div class="tab-content" ng-switch-when="list">
<div ng-include="'list.html'"></div>
</div>
<div class="tab-content" ng-switch-when="map">
<div ng-include="'map.html'"></div>
</div>
</div>
</div>
Другие URL-адреса:
- список:
localhost:9000/widget&view=list
- карта:
localhost:9000/widget&view=map
1 ответ
Подобный вопрос здесь. Одно из предложений - внедрить службу $location и включить $location.path, возможно, стоит попробовать, если вы не собираетесь использовать ui-router (что вам действительно стоит изучить!)
function Ctrl($scope, $location) {
$scope.pagename = function() { return $location.path(); };
};
<div id="header">
<div ng-switch on="pagename()">
<div ng-switch-when="/home">Welcome!</div>
<div ng-switch-when="/product-list">Our products</div>
<div ng-switch-when="/contact">Contact us</div>
</div>
</div>