2017-04-27 3 views
1

dies ist mein erster Beitrag, ich hoffe, ich bin klar genug, ich kann nicht $ state.go zu arbeiten, ich habe überall gesucht, aber ich nicht scheinen um die Antwort zu finden, bin ich mir nicht sicher, was ich falsch mache, weil ich neu in dieser Technologie bin, die ich wirklich gut finde. Vielleicht muss ich index.html in der app.js deklarieren, aber ich möchte nicht, dass diese Seite nach dem Start der App zugänglich ist, nur für den Anfang, sobald sich die Benutzer angemeldet haben, wird dieser Bildschirm nicht mehr angezeigt, es sei denn sie starte die App neu.

  1. Das ist mein app.js

    angular.module('starter', ['ionic','starter.controllers', 'starter.services']) 
    
    .config(function($ionicConfigProvider, $stateProvider, $urlRouterProvider) { 
    
    $stateProvider 
    
    .state('tab', { 
    url: '/tab', 
    abstract: true, 
    templateUrl: 'templates/tabs.html' 
    }) 
    
    .state('tab.appointments', { 
    url: '/appointments', 
    views: { 
        'tab-appointments': { 
        templateUrl: 'templates/tab-appointments.html', 
        controller: 'appointmentsCtrl' 
        } 
    } 
    }) 
    
    .state('tab.findPatient', { 
    url: '/findPatient', 
    views: { 
        'tab-findPatient': { 
        templateUrl: 'templates/tab-findPatient.html', 
        controller: 'FindPatientCtrl' 
        } 
    } 
    }) 
    
    .state('tab.findSlot', { 
    url: '/findSlot', 
    views: { 
        'tab-findPatient': { 
        templateUrl: 'templates/tab-findSlot.html', 
        controller: 'FindPatientCtrl' 
        } 
        } 
    }) 
    
    .state('tab.settings', { 
    url: '/settings', 
    views: { 
        'tab-settings': { 
        templateUrl: 'templates/tab-settings.html', 
        controller: 'settingsCtrl' 
        } 
    } 
    }); 
    
    $urlRouterProvider.otherwise('/tab/appointments'); 
    }); 
    
  2. Das ist mein index.html ist

    <body ng-app="starter"> 
    <ion-header-bar class="bar-calm" align-title="center"></ion-header-bar> 
    <ion-pane> 
        <ion-content scroll="false"> 
        <form ng-controller="loginCtrl" name="loginCredentialsForm"> 
        <div class="list list-inset"> 
        <label class="item item-input"> 
         <input class="text-center" type="text" placeholder="Username" ng-model="username" required="true"> 
        </label> 
        <label class="item item-input"> 
         <input class="text-center" type="password" placeholder="Password" ng-model="password" required="true"> 
        </label> 
        <label class="item item-input"> 
         <input class="text-center" type="password" maxlength=4 placeholder="PIN" ng-model="practicePin" required="true"> 
        </label> 
        </div> 
        <div class="text-center"> 
         <button class="button button-block button-calm small_button" ng-disabled="loginCredentialsForm.$invalid" ng-click="login()" type="submit">Login</button> 
        </div> 
        </form> 
        </ion-content> 
    </ion-pane> 
    </body> 
    
  3. Und das ist mein controllers.js

    angular.module('starter.controllers', []) 
    
    .controller('loginCtrl', function($scope, $state) { 
    
        $scope.login = function() { 
        $state.go('tab.appointments'); 
        }; 
    }) 
    

Vielen Dank im Voraus, ich entschuldige mich für Syntaxfehler.

Herausgegeben - hinzugefügt

  1. Dies ist, was tabs.html wie

    <ion-tabs class="tabs-icon-bottom tabs-calm"> 
        <ion-tab title="Appointments" icon-off="ion-ios-pulse" icon-on="ion-ios-pulse-strong" href="#/tab/appointments"> 
        <ion-nav-view name="tab-appointments"> 
        </ion-nav-view> 
        </ion-tab> 
    </ion-tabs> 
    
  2. schaut Und dann gibt es home.html, die ich ziemlich sicher bin, ist derjenige, der auf Registerkarten umleitet. html und dann vom Rest geladen worden.

    <body ng-app="starter"> 
        <ion-nav-bar class="bar-calm" align-title="center"> 
         <ion-nav-back-button> 
         </ion-nav-back-button> 
        </ion-nav-bar> 
        <ion-nav-view></ion-nav-view> 
        </body> 
    

Wenn ich den Namen home.html zu index.html ändern und verwenden Sie nicht die tatsächlichen index.html, die ich für die Leute wollen sich einloggen alles funktioniert gut, aber ich brauche wirklich, dass Leute loggen sich ein, also haben sie ihre eigenen Aufzeichnungen.

This is what home.html actually looks like Wie ich schon sagte, ich bin neu in dieser Art von Technologie und versuche, mein Bestes zu tun, um zu verstehen, wie das funktioniert. Ich schätze jede Hilfe.

+0

geändert werden Haben Sie Fehler in Entwickler-Tools-Konsole? Hast du auch '

' in 'templates/tabs.html'? – Leguest

+0

Ich habe gerade die Vorlage verändert, die ionen als Beispiel gibt, soll ich das denn? –

+0

Zusätzlich sollte die 'ui-view' in' templates/tabs.html' ein name Attribut von 'tab-termings' haben. – Ladmerc

Antwort

1

Sie können auch für die Umleitung zu einer Seite verwenden.

$window.location.href = 'templates/tab-appointments.html'; 

Ihr Controller kann wie diese

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

.controller('loginCtrl', function($scope, $state,$window) { 

    $scope.login = function() { 
    $window.location.href = 'templates/tab-appointments.html'; 
    }; 
}) 
+0

Das hat den Trick ziemlich gut gemacht, man kann sogar Eingaben validieren, bevor man auf die andere Seite umleitet über JS. Ich weiß es wirklich zu schätzen, dass Sie antworten –