Нужно вызвать 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>
Другие вопросы по тегам