| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 | // Ionic Starter App// angular.module is a global place for creating, registering and retrieving Angular modules// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)// the 2nd parameter is an array of 'requires'// 'starter.services' is found in services.js// 'starter.controllers' is found in controllers.jsangular.module('starter', ['ionic', 'starter.controllers', 'starter.services', 'ngResource', 'underscore']).run(function($ionicPlatform) {  $ionicPlatform.ready(function() {    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard    // for form inputs)    if (window.cordova && window.cordova.plugins && window.cordova.plugins.Keyboard) {      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);      cordova.plugins.Keyboard.disableScroll(true);    }    if (window.StatusBar) {      // org.apache.cordova.statusbar required      StatusBar.styleDefault();    }  });}).config(function($stateProvider, $urlRouterProvider, $resourceProvider, $httpProvider) {  // Ionic uses AngularUI Router which uses the concept of states  // Learn more here: https://github.com/angular-ui/ui-router  // Set up the various states which the app can be in.  // Each state's controller can be found in controllers.js  $stateProvider  // setup an abstract state for the tabs directive    .state('tab', {    url: '/tab',    abstract: true,    templateUrl: 'templates/tabs.html'  })  // Each tab has its own nav history stack:  .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.chat-detail', {      url: '/chats/:chatId',      views: {        'tab-chats': {          templateUrl: 'templates/chat-detail.html',          controller: 'ChatDetailCtrl'        }      }    })  .state('tab.account', {    url: '/account',    views: {      'tab-account': {        templateUrl: 'templates/tab-account.html',        controller: 'AccountCtrl'      }    }  })  .state('tab.task-detail', {    url: '/account/:id',    views: {      'tab-account': {        templateUrl: 'templates/task-detail.html',        controller: 'TaskDetailCtrl'      }    }  });  // if none of the above states are matched, use this as the fallback  $urlRouterProvider.otherwise('/tab/dash');  $httpProvider.interceptors.push(function () {    return {      'request': function (config) {        config.url += (config.url.indexOf("?") === -1 ? "?" : "&") + "v=" + Date.now();        return config;      }    };  });  $resourceProvider.defaults.stripTrailingSlashes = false;  $resourceProvider.defaults.actions.update = {    method: 'PUT',    params: {      id: "@id"    }  };  $resourceProvider.defaults.actions.patch = {    method: 'PATCH',  };});
 |