0
Мне нравится скрывать и показывать значки в зависимости от вида. Что я не могу сделать, потому что ion-nav-bar
осуществляется доступ только из tabsCtrl
Показать/скрыть кнопки в «ion-nav-bar» относительно вида
Вот вид разметки:
<ion-nav-bar class="bar-stable">
<ion-nav-back-button> </ion-nav-back-button>
<ion-nav-title>My App Title</ion-nav-title>
<ion-nav-buttons side="right">
<button class="button icon ion-ios-information-outline" ng-click="openFaqModal()" ng-hide="showHideFAQ"></button>
<button class="button icon ci-bookmark" ng-click="openBoookmarkModal()" ng-show="showHideBookmark"></button>
</ion-nav-buttons>
</ion-nav-bar>
Вот контроллер:
// Tab Controller - *** This Work ***
.controller('TabCtrl', function ($scope) {
$rootScope.showHideFAQ = true;
$rootScope.showHideBookmark = true;
})
// Detail Controller - *** This do not work ***
.controller('DetailCtrl', function ($scope) {
$rootScope.showHideFAQ = true;
$rootScope.showHideBookmark = true;
})
Вот Маршрут:
// setup an abstract state for the tabs directive
.state('tab', {
url: '/tab',
abstract: true,
templateUrl: 'views/tabs.html',
controller: 'TabCtrl'
})
.state('tab.detail', {
url: '/resources/:resourcesId',
views: {
'tab-resources': {
templateUrl: 'views/detail.html',
controller: 'DetailCtrl'
}
}
})
Я не уверен, почему он работает в «TabCtrl», но не в «Deta ilCtrl ", так как оба контроллера загружаются в один вид. Я сомневаюсь, что это как-то связано с scope
.
я думаю, что вы пропустите впрыснуть ** $ rootScope ** в обоих контроллера, и как только вы установите значение в $ ** ** rootScope будет остаются такими же в течение всего сеанса приложения. – Naitik
@Naitik Я пробовал это уже, но, как уже упоминалось, 'TabCtrl' доступен во всех представлениях, я не могу сбросить его, как только он войдет в желаемый вид. – Syed
затем используйте ** $ localStorage ** вместо ** $ rootScope ** – Naitik