状态更改不会与$ http帖子一起发生

时间:2015-07-22 20:50:59

标签: angularjs ionic-framework angular-ui-router ionic

出于某种原因,当我向本地服务器发送登录$ 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;
            });
    };

0 个答案:

没有答案