всем привет
Я делаю веб-приложение, используя AngularJS и MaterializeCSS для Frontend, все работает хорошо, пока я не использовал компонент Materialize под названием Tabs. Когда я искал ошибки, я понял, что ошибка связана с привязкой в закладках. Угловой идентифицирует href= "# link" как маршрут, но Materialize использует для селектора id. Я не знаю, что делать, и я буду признателен за любую помощь
<!-- Begin Tabs-->
<div class="section white">
<div class="container tab-container z-depth-5">
<div class="row">
<div class="col s12">
<div class="center tab-header white-text">
<h1>Pro Players</h1>
</div>
<ul class="tabs">
<li class="tab col s3"><a class="active" href="#top">Top Mundial</a></li>
<li class="tab col s3"><a href="#NA">Norte América</a></li>
<li class="tab col s3"><a href="#LATAM">Latino América</a></li>
</ul>
</div>
<div id="top" class="col s12 tab-div">
<h1 class="">Mejores jugadores del mundo..</h1>
<h2>Norte América</h2>
</div>
<div id="NA" class="col s12 tab-div">
<h1 class="">Mejores jugadores de NA..</h1>
<h2>Norte América</h2>
</div>
<div id="LATAM" class="col s12 tab-div">
<h1 class="">Mejores jugadores latinos..</h1>
<h2>Latino América</h2>
</div>
</div>
</div>
</div>
<!-- End Tabs-->
Я знаю, что это старо, но я просто решил проблему, отлаживая материализацию плагина tabs.js. Теперь я могу переключать вкладки, используя ng-click, и анимация работает плавно. Вот как вы можете это сделать:
Загрузить этот файл https://cdn.rawgit.com/Dogfalo/materialize/master/dist/js/materialize.js
Перейдите в часть tabs.js плагина (строки 1301-1464). Замените файл jsbin javascript здесь: https://jsbin.com/nokepaqage/1/edit?html,js,output
Настройте маршруты.
В корневом контроллере настройте прототип $scope.page = {}
.
$scope.page.id = 'your-title'};
.tabs li a
так: ng-class="{active: page.id==='yourPage'}"
..tabs li a
настройте ng-click ng-click="go('/news')
$location
(см. Мой jsbin) и создайте функцию go
(см. Jsbin).Это сработало для меня! Дайте мне знать, если у вас есть какие-либо вопросы/проблемы!
Вместо добавления тега привязки вы можете попробовать добавить ng-click в тег списка и на ng-click вы можете изменить маршрут или, может быть, что-то вроде location.hash = "LATAM".
вы можете решить эту проблему, используя ng-show
<ul class="tabs">
<li class="tab col s3" ng-click="currentTab = 'Top'"><a ng-class="{'active':currentTab == 'Top'}" >Top Mundial</a></li>
<li class="tab col s3" ng-click="currentTab = 'NA'"><a ng-class="{'active':currentTab == 'NA'}">Norte América</a></li>
<li class="tab col s3" ng-click="currentTab = 'LATAM'"><a ng-class="{'active':currentTab == 'LATAM'}">Latino América</a></li>
</ul>
<div ng-show="currentTab == 'top'" class="col s12 tab-div">
<h1 class="">Mejores jugadores del mundo..</h1>
<h2>Norte América</h2>
</div>
<div ng-show="currentTab =='NA'" class="col s12 tab-div">
<h1 class="">Mejores jugadores de NA..</h1>
<h2>Norte América</h2>
</div>
<div ng-show="currentTab == 'LATAM'" class="col s12 tab-div">
<h1 class="">Mejores jugadores latinos..</h1>
<h2>Latino América</h2>
</div>
JS
$scope.currentTab = 'TOP';
ИЛИ
вы можете использовать data-target
вместо href
data-target="#idName"