私はAngularJS /イオンとの初心者です、と次のコードに問題が直面していますから、コントローラを起動することができません:私は、コード内のコメントで述べたようにAngularJS:約束
.controller('myCtrl', function ($scope, $http, $ionicPopover, $state, $cordovaOauth){
//The following is used in the ng-click of a button
$scope.doAction = function() {
$cordovaOauth.google("xxxxxx.apps.googleusercontent.com", ["email"]).then(function (result) {
// results
alert(JSON.stringify(result));
$scope.google_access_token = result.access_token;
var http = $http({
url: 'https://www.googleapis.com/oauth2/v3/userinfo',
method: 'GET',
params: {
access_token: result.access_token
}
});
http.then(function (data) {
var user_data = data.data;
//The code is reaching here, as the alert is successfully shown with data
alert("Name: " + user_data.name + "\nEmail: " + user_data.email
+"\nPicture:" + user_data.picture);
userInfo.fullName = user_data.name;
userInfo.userId = user_data.email;
userInfo.img = user_data.picture;
localStorage.setItem('loggedInUser', user_data.email);
//But this is not taking me to the other controller
$state.go('tabsController.someOtherController');
});
}, function (error) {
// error
alert(error);
});
}
}
を、実行はhttp.thenの内部に達しますが、$ state.goを持つ他のコントローラを呼び出すことはありません。私がdoAction()の前に配置すると、呼び出されています。つまり、コントローラ自体に何も問題はありません。誰かが私がここで間違っていることを特定するのに役立つことができますか?
がどのようにapp.js.であなたのルートを定義します。この宣言
これらが有効であるために
$ state.go( 'tabsController.someOtherController'); 'tabsController.someOtherContorller'状態になります。 – mtamma
.state( 'tabsController.someOtherController'、{ URL: '/他の何らかの' ビュー:{ 'TAB1':{ templateUrl: 'テンプレート/ someOtherPage.html' コントローラ 'SomeOtherCtrl' }} –
はい、表示されています –