我在Ionic App上工作,我遇到了麻烦。 我是AngularJS和Ionic的新手。
用户需要登录才能使用该应用。要检查这个,在应用程序的输入时会调用我的服务器的apicall。如果用户未登录,则应用程序将显示用户可以登录的模式。
但是,在apicall制作的小秒针中,您会看到"内部"应用程序(限制页面)。 为了避免这种情况,我想放置一个应用程序检查用户是否登录的屏幕。如果用户已登录,则屏幕需要在应用程序中进一步发送用户。
这个问题是应用程序没有发送用户。我用一个简单的href(ui-sref)代替了所有的代码,但是它也没有用。
有趣,奇怪的部分是如果我在浏览器中运行它可行。但是在我的手机上(android)并没有做任何事情。
我尝试使用$ location.path的函数,但我没有把它发送到任何地方。它确实设置了路径。
我试过$ apply,$ digest,$ window.location.href ....等等都没有用。
如果我不使用等待屏幕,一切正常。
<a ui-sref='app.proposals({"favorite" : 0})'>Continue</a>
matcher.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider)
{
$ionicConfigProvider.tabs.position("bottom");
$ionicConfigProvider.tabs.style("standard");
$stateProvider
.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})
.state('app.proposals', {
url: '/proposals/:favorite',
views: {
'menuContent': {
templateUrl: 'templates/proposals.html',
controller: 'ProposalsCtrl'
}
}
})
.state('app.proposal', {
url: '/proposal/:title/:id/:url',
views: {
'menuContent' : {
templateUrl: 'templates/proposal.html',
controller: 'ProposalCtrl'
}
}
})
.state('wait',{
url: '/wait',
templateUrl: 'templates/wait.html',
controller: 'WaitCtrl'
});
// if none of the above states are matched, use this as the fallback
//$urlRouterProvider.otherwise('/app/proposals/0');
$urlRouterProvider.otherwise('/wait');
});
答案 0 :(得分:1)
好吧,现在,解决这个问题的最佳方法是使用更好的做法。您的应用程序遵循标准身份验证流程现在,根据我的说法,如果你只是在上下文中设置当前视图的动画,那就更好了。这将有两个目的
据我所知,这里的问题是,当您进行API调用时,Ionic会尝试获取缓存页面。修复它以获得默认基本检查的最佳方法;指向index.html
,IndexController
检查是用户登录的,如果是,则使用$state.go("STATE_NAME")
进入登录状态,否则,转到您登录的状态。
当我这样说时,请相信我:这不仅会更容易,而且一旦应用程序代码真正建立起来,它也会更易于维护。
如果您需要任何进一步的说明和/或代码示例,请在此处进行评论。我没有把它们包括在内,因为它很简单,并且推断出你已经熟悉的逻辑和语法。