Вызов функции непосредственно с вкладки Ionic - angularjs

Я пытаюсь создать свое первое приложение с Ionic. У меня есть несколько вкладок, определенных в файле app.js.

  .state('tab.dash', {
    url: '/dash',
    views: {
      'tab-dash': {
        templateUrl: 'templates/tab-dash.html',
        controller: 'DashCtrl'
      }
    }
  })
  .state('tab.chats', {
      url: '/chats',
      views: {
        'tab-chats': {
          templateUrl: 'templates/tab-chats.html',
          controller: 'ChatsCtrl'
        }
      }
    })
  .state('tab.audioplayer', {
      url: '/audioplayer',
      views: {
        'tab-audioplayer': {
          templateUrl: 'templates/tab-audioplayer.html',
          controller: 'ExampleController'
        }
      }
    })

Здесь, на последней вкладке, я не хочу открывать новую страницу, такую ​​​​как tab-audioplayer.html, как показано сейчас. Вместо этого я хочу вызвать функцию, скажем, MyFunction(), находящуюся в контроллере «ChatsCtrl» (предыдущий), который выполняет некоторые назначения значений. Поскольку я новичок, я не знаю, как вызывать функцию вместо открытия вкладки при нажатии на значок вкладки.


person AnR    schedule 20.02.2015    source источник


Ответы (1)


Не используйте директиву ion-tab в своем шаблоне, а просто используйте тег <a> и поместите туда ng-click — он должен хорошо вписаться в ваш <ion-tabs>container и просто оформить соответствующим образом (можно присвоить ему .tab-item). Я считаю, что директива ion-tab предотвращает любые другие действия, зарегистрированные для события click.

person premiumFrye    schedule 21.02.2015
comment
Спасибо @premiumFrye. Я только что сделал это, поставив ‹a› вторым пунктом. Это сработало, но появилось как вкладка № 1 вместо двух последовательно. Любая идея поместить это в нужном месте? Другие вкладки по-прежнему ‹ion-tab› - person AnR; 22.02.2015
comment
Я думаю, что это слишком сложно. Чтобы получить полный контроль, я решил использовать пустой шаблон, чтобы я мог делать все, что захочу. - person AnR; 22.02.2015
comment
Конечно, если вам не нужна независимая история каждой вкладки, вы можете просто заменить все свои ion-tab на <a class="ion-tab"> и делать с каждой вкладкой все, что захотите. - person premiumFrye; 22.02.2015
comment
Вот так. Мне нужно будет вести историю вручную. В любом случае спасибо за ответ. - person AnR; 22.02.2015