【发布时间】:2017-03-28 02:21:08
【问题描述】:
我想从控制器的变量中获取我的服务,但它给了我一个 $$state 对象
这是我的控制器
$scope.myDataSMS = ServiceSms.async().then(function(data){
$scope.myDataSMS1 = data;
console.log($scope.myDataSMS1);
return $scope.myDataSMS1;
});
console.log($scope.myDataSMS);
和我的服务
routeAppControllers.factory('ServiceSms', function($http,Token) {
var key = Token.CreateToken()
var myService = {
async: function() {
var data = 'token=' + encodeURIComponent(key);
var promise = $http({
method: 'POST',
url: 'PhpFunction/getsms.php',
data: data,
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.then(function(data) {
// The then function here is an opportunity to modify the response
// console.log(data.data);
// The return value gets picked up by the then in the controller.
return data.data;
})
// Return the promise to the controller
return promise;
}
};
return myService;
});
我认为问题在于承诺,但我有点卡住了
如果有人可以帮助我,请
提前致谢
【问题讨论】:
-
这个“$$state 对象”在哪里的问题还不够清楚。首先,我确定它不会给你 $$state 对象。它为您提供了一个包含 $$state 属性的对象(promise)。当然,
console.log($scope.myDataSMS)会输出一个 promise。因为 myDataSMS 是一个承诺。而 myDataSMS1 是承诺结果。
标签: angularjs