出于某种原因,当我向本地服务器发送登录$ http帖子时,我无法更改状态。
控制器:
$scope.login = function(user){
$http.post('/api/v1/user/login', user)
.success(function(data, status){
console.log(data);
authToken.setToken(data);
$state.go('user.exercises');
})
.error(function(data, status){
$scope.status = data;
});
};
HTML:
<div class="list">
<label class="item item-input">
<span class="input-label">Username</span>
<input type="text" ng-model="user.username">
</label>
<label class="item item-input">
<span class="input-label">Password</span>
<input type="password" ng-model="user.password">
</label>
</div>
<div class="padding">
<button class="button button-block button-positive" ng-click="login(user)">
Log In
</button>
<p class="text-center">
<a href="#/forgot-password">Forgot password</a>
</p>
</div>
ionic.project:
"proxies": [
{
"path": "/api/v1",
"proxyUrl": "http://localhost:5000/api/v1"
}
]
config.xml中
<description>
An Ionic Framework and Cordova project.
</description>
<author email="hi@ionicframework" href="http://ionicframework.com/">
Ionic Framework Team
</author>
<content src="index.html"/>
//important
<access origin="*"/>
<allow-navigation href="http://*/*" />
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="android-minSdkVersion" value="16"/>
<preference name="BackupWebStorage" value="none"/>
<feature name="StatusBar">
<param name="ios-package" value="CDVStatusBar" onload="true"/>
</feature>
我不确定它是否与我设置使用我的服务器的方式有关,或者它是否实际上是离子和ui-router问题。这适用于我的网络版。
更新
如果有两个$ state.gos,它会起作用。不是一个或另一个。它需要两者兼得。这没有任何意义。
$scope.login = function(user){
$state.go('user.exercises');
$http.post('/api/v1/user/login', user)
.success(function(data, status){
console.log(data);
authToken.setToken(data);
$state.go('user.exercises');
})
.error(function(data, status){
console.log(data);
$scope.status = data;
});
};