如何在Ionic中从一个模板导航到另一个模板

时间:2016-02-11 07:40:02

标签: ionic-framework ionic-view

我的应用有两种模板。第一个用于"退出"页面和第二个用于"登录"页。

以下是index.html,它与所有"已注销"模板页面:

<!DOCTYPE html>
<html ng-app="appLoggedOut">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <title>Services 4 Uber</title>

    <link href="lib/ionic/css/ionicons.min.css" rel="stylesheet" >
    <link href="lib/ionic/css/ionic.css" rel="stylesheet">
    <script src="lib/ionic/js/ionic.bundle.js"></script>

    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
    <link href="css/ionic.app.css" rel="stylesheet">
    -->

    <script src="js/loggedout/app.js"></script>
    <script src="js/loggedout/controllers.js"></script>
    <script src="js/loggedout/routes.js"></script>
    <script src="js/loggedout/services.js"></script>
    <script src="js/loggedout/directives.js"></script>

    <link href="css/app.css" rel="stylesheet">

  </head>
  <body>
    <div>
        <div class="spacer" style="width: 300px; height: 15px;"></div>
        <ion-nav-view></ion-nav-view>
    </div>
    <div class="bar bar-footer bar-dark">
        Footer for Logged out pages
    </div>    
  </body>
</html>

我需要设置我所有的&#34;登录&#34;页面显示标题和不同的页脚。所以,就像我有另一个index.html,仅用于&#34;登录&#34;页。

以下是我想要使用的所有内容&#34;登录&#34;网页:

<!DOCTYPE html>
<html ng-app="appLoggedIn">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <title>Services 4 Uber</title>

    <link href="lib/ionic/css/ionicons.min.css" rel="stylesheet" >
    <link href="lib/ionic/css/ionic.css" rel="stylesheet">
    <script src="lib/ionic/js/ionic.bundle.js"></script>

    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
    <link href="css/ionic.app.css" rel="stylesheet">
    -->

    <script src="js/loggedin/app.js"></script>
    <script src="js/loggedin/controllers.js"></script>
    <script src="js/loggedin/routes.js"></script>
    <script src="js/loggedin/services.js"></script>
    <script src="js/loggedin/directives.js"></script>

    <link href="css/app.css" rel="stylesheet">

  </head>
  <body ng-controller="homeCtrl">

    <div class="bar bar-header bar-light">
        Header used only in logged in pages
    </div>

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

    <div class="bar bar-footer bar-dark">
        Footer for logged in pages
    </div>    

  </body>
</html>

如何定义我的路线,从我的登录页面(使用&#34;已注销&#34;模板)跳转到已记录的页面(使用&#34;登录&#34;模板)?

我想更改所有页面而不只是在标记内加载视图&#34;&#34;。

感谢。

1 个答案:

答案 0 :(得分:1)

我只讨论如何从一个模板导航到另一个模板。 使用angularjs或javaScript的离子。遵循州或网址等的简单调用
例如,每个控制器都有路由和HTML页面

angular.module('starter.storeDetailsController', [])
.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('storeDetails', {
            url: '/user/:store',
            abstract:true,
            templateUrl: 'templates/store_detail.html',
            controller: 'StoreDetailsCtrl'
        })
})

.controller('StoreDetailsCtrl', ['$scope', '$ionicLoading',   '$timeout', function($scope, $ionicLoading, $timeout) {
     $scope.goToNextPage=function(){
        $state.go('home'); //here navigate from one template to another
     }
  }])

另一页

angular.module('starter.homeDetailsController', [])
.config(function($stateProvider, $urlRouterProvider) {
    $stateProvider
        .state('home', {
            url: '/home',
            abstract:true,
            templateUrl: 'templates/home.html',
            controller: 'HomeCtrl'
        })
})

     .controller('HomeCtrl', ['$scope', '$ionicLoading', '$timeout',    function($scope, $ionicLoading, $timeout) {
   console.log('Welcome');
}])

上面的示例显示了两个控制器StoreDetailsCtrl和HomeCtrl,我从主页中的StoreDetailsCtrl转到HomeCtrl。这是通过javascript导航,但有很多方法可以导航页面。

在HTML中由href =#/ url并且还使用了ui-sref =&#34; stateName&#34;在离子导航页面。