2

I am trying to get my dashboard view from template folder when I am loading my app. I am using Ionic frame work.

My index

  <body ng-app="starter">

<ion-pane>
  <ion-header-bar class="bar bar-header bar-dark main-header">
    <h1 class="title main-header-title"><strong>Recharge Plans</strong></h1>
  </ion-header-bar>
  <ion-nav-view></ion-nav-view>
</ion-pane>

My app.js

    angular.module('starter', ['ionic','starter.controller','starter.service'])

.config(function($stateProvider, $urlRouterProvider) {

$stateProvider
  .state('dash', {
    url: '/dash',
    views: {
      'dash': {
        templateUrl: '/templates/dash.html',
        controller: 'DashCtrl'
      }
    }
  });
$urlRouterProvider.otherwise('/dash');
});

My controller.js

    angular.module('starter.controller',[])

.controller('DashCtrl', function($scope) {
alert("ok");
})

In 'www\templates' I have a file named dash.html.

My dash.html is

<ion-view ng-controller="DashCtrl">
  <ion-content>
        <div class="list searc-panel">
            <label class="item item-input item-select">
                <div class="input-label">
                  Select Operator
                </div>
                <select>
                  <option>Select</option>
                  <option>Airtel</option>
                  <option>Vodafone</option>
                </select>
            </label>            
            <label class="item item-input item-select">
                <div class="input-label">
                  Select State
                </div>
                <select>
                  <option>Select</option>
                  <option>West bengal</option>
                  <option>Kolkata</option>
                </select>
            </label>
            <button class="button button-full button-positive">
              Search My Plans
            </button>
        </div>
  </ion-content>
</ion-view>

But when i hit 'file:///C:/Users/Sanjeev/RechargePlans/www/index.html' in browser then it renders me to 'file:///C:/Users/Sanjeev/RechargePlans/www/index.html#/dash' with a blank view .

What I miss??

0

2 Answers 2

1

If you are going to name your views with Ionic then your ion-view tab HTML needs to look like this:

<ion-nav-view name="you-view-name"></ion-nav-view>

Usually with Ionic apps you have a root state and everything stems off that, so:

app.js file:

angular.module('starter', ['ionic','starter.controller','starter.service'])

    .config(function($stateProvider, $urlRouterProvider) {

        $stateProvider
            .state('root', {
                url: '/',
                templateUrl: '/templates/tabs.html',
                controller: 'rootCtrl'
                }
             });
            .state('root.dash', {
                url: '/dash',
                views: {
                    'dash': {
                        templateUrl: '/templates/dash.html',
                        controller: 'DashCtrl'
                     }
                }
             });
         $urlRouterProvider.otherwise('/dash');
     });

index.html:

<ion-nav-view></ion-nav-view>

tabs.html:

<ion-nav-view name="dash"></ion-nav-view>

In any case, if you are naming your views them your ion-view HTML tag needs to have a name attribute with the name of the view in it.

Hope this helps

Sign up to request clarification or add additional context in comments.

Comments

1

you should not run ionic app by "file:///C:/Users/Sanjeev/RechargePlans/www/index.html". you should be using ionic cli tool to run your ionic project. Go to cmd > navigate to your project folder and than run ionic serve and you will be able to see output.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.