Ionic(AngularJS) - 重定向用户和路由

Jer*_*olo 2 javascript angularjs cordova angularjs-routing ionic-framework

所以我在这个新项目中使用Ionic,需要一些路由支持(angular n00b).

我有这些状态:

$stateProvider.state('map', {
    url: '/map',
    views: {
        map: {
            templateUrl: 'views/map.html',
            controller: 'mapCtrl'
        }
    }
})

.state('help', {
    url: '/help',
    views: {
        help: {
            templateUrl: 'views/help.html'
        }
    }
})

.state('setname', {
    url: '/setname',
    views: {
        setname: {
            templateUrl: 'views/setname.html',
            controller: 'setNameCtrl'
        }
    }
})
Run Code Online (Sandbox Code Playgroud)

并且我希望用户在"myName"为空时尝试访问另一个页面时被重定向到"setname"(将来我会做类似的事情来检查用户是否在允许访问应用程序之前登录) .

这是当前的HTML,根本不确定这个...

<ion-tabs class="tabs-positive">
    <ion-tab icon="ion-home" ui-sref="map">
        <ion-nav-view name="map"></ion-nav-view>
    </ion-tab>
    <ion-tab icon="ion-help" ui-sref="help">
        <ion-nav-view name="help"></ion-nav-view>
    </ion-tab>
</ion-tabs>
Run Code Online (Sandbox Code Playgroud)

请帮助一下,我会很感激.

第二个问题,仍然是路由和显示内容:我的应用程序的基础将是地图.我希望用户能够非常快速地到达它,所以我希望它在显示另一个页面的时候一直在后台保持可用(让我们说帮助).因此,每当用户单击给定按钮时,它只会将他带回地图,而不必再次加载它.你会怎么建议我这样做?我想过使用Ionic的"popover"属性,但我不确定它是否正确:http://ionicframework.com/docs/api/service/ $ ionicPopover /

非常感谢你 !

小智 5

对于你的第一个问题,你应该使用$ state.go,例如:

.controller('testCtrl', function($scope, $state) {
$scope.data = {};

$scope.save = function(){
        if ($scope.data.Name == ""){
            $state.go("setname");
        }

})
Run Code Online (Sandbox Code Playgroud)