2016-11-18 58 views
2

第二個控制檯變得未定義,但是第一個控制檯工作正常。 以前它工作,不知道它已停止工作。

angular.module('JobPortal').controller('UserActivityController',function($rootScope, $scope, $http, $timeout,$stateParams,$cookies, UserActivity){ 

    var token = $cookies.get('token'); 
    var param ={'token': token}; 
    UserActivity.user_get(param).success(function(data) { 
     $scope.user_id = data._id; 
     console.log($scope.user_id); 
    }); 

    console.log($scope.user_id); 

    $scope.profileCompletion = function(form) { 
     //console.log($scope.user_id); 

     var param = $scope.profComp; 
     param.user_id = $scope.user_id; 
     console.log(param); 
     UserActivity.save_details(param).success(function(data) { 
      //$scope.lastActivityID = data._id; 
      window.location.href = "/vendor#/upload-resume"; 
     }); 
    } 

}); 
+1

因爲它在一個承諾被分配。第二個控制檯不是第一個出現嗎?順便問一下你想解決的問題是什麼? – taguenizy

+0

我需要從這裏獲取user_id,並將其分配到$ scope.user_id中。那麼我已經在另一個功能,但相同的控制器使用此。它給錯誤。 –

+0

'$ scope.user_id'正被異步分配。你可以保存這個承諾,並像你一樣分配它,使用'success'或'then'。你可以向我們展示你使用它的功能嗎? – taguenizy

回答

0

發生這種情況是因爲第二個控制檯首先執行。

angular.module('JobPortal').controller('UserActivityController',function($rootScope, $scope, $http, $timeout,$stateParams,$cookies, UserActivity){ 



var token = $cookies.get('token'); 
    var param ={'token': token}; 
    UserActivity.user_get(param).success(function(data) { 
     $scope.user_id = data._id; 
     $scope.consoleUser(); 
    }); 

    $scope.consoleUser = function() { 
     console.log($scope.user_id); 
    } 

}); 

,將工作

+0

yah它會工作,但它就像我們做了什麼,爲什麼它不直接工作。 ? Plz Plz幫助 –

+0

我必須在另一個已經與單擊鏈接的函數中使用$ scope.user_id。 –

+0

它不起作用,因爲只要您使用回調,它就會變成異步。 – Akhil

0

在您的控制器保存promise。在$scope.profileCompletion函數中,使用它來確保函數何時被調用,如果它沒有在那個時間,它將等待承諾完成。

var promise = UserActivity.user_get(param).success(function(data) { 
    $scope.user_id = data._id; 
    console.log($scope.user_id); 
}); 

$scope.profileCompletion = function(form) { 
    promise.then(function(){ 
     var param = $scope.profComp; 
     param.user_id = $scope.user_id; 
     UserActivity.save_details(param).success(function(data) { 
      //$scope.lastActivityID = data._id; 
      window.location.href = "/vendor#/upload-resume"; 
     }); 
    }) 
} 
0

替換下面的一個代碼,將工作

angular.module('JobPortal').controller('UserActivityController',function($rootScope, $scope, $http, $timeout,$stateParams,$cookies, UserActivity){ 
    $scope.user_id = ""; //add this line 
    var token = $cookies.get('token'); 
    var param ={'token': token}; 
    UserActivity.user_get(param).success(function(data) { 
     $scope.user_id = data._id; 
     console.log($scope.user_id); 
    }); 

    console.log($scope.user_id); 

    $scope.profileCompletion = function(form) { 
     //console.log($scope.user_id); 

     var param = $scope.profComp; 
     param.user_id = $scope.user_id; 
     console.log(param); 
     UserActivity.save_details(param).success(function(data) { 
      //$scope.lastActivityID = data._id; 
      window.location.href = "/vendor#/upload-resume"; 
     }); 
    } 

});