相关疑难解决方法(0)

如何使控制器等待承诺从角度服务解决

我有一个服务正在向后端发出AJAX请求

服务:

    function GetCompaniesService(options)
    {
        this.url = '/company';
        this.Companies = undefined;
        this.CompaniesPromise = $http.get(this.url);

    }
Run Code Online (Sandbox Code Playgroud)

控制器:

var CompaniesOb = new GetCompanies();
CompaniesOb.CompaniesPromise.then(function(data){
   $scope.Companies = data;
});
Run Code Online (Sandbox Code Playgroud)

我希望我的服务能够处理".then"函数,而不必在我的控制器中处理它,并且我希望能够让我的控制器在服务中的承诺解决之后对服务中的数据进行操作.

基本上,我希望能够像这样访问数据:

var CompaniesOb = new GetCompanies();
$scope.Companies = CompaniesOb.Companies;
Run Code Online (Sandbox Code Playgroud)

随着承诺的解决在服务本身内部处理.

这可能吗?或者是我能够访问该承诺的唯一方法是解决方案来自服务外部吗?

javascript ajax promise angularjs angularjs-service

11
推荐指数
1
解决办法
3万
查看次数

AngularJS then()的行为与success()不同 - error()

由于AngularJS中的success()error()函数已弃用,我正在更新我的代码,将其替换为then().现在根据我的理解,这两段代码的行为应该相同:

$http
   .get(/* some params */)
   .success(function() {
      // success cases here
   })
   .error(function() {
      // error cases here
   });
Run Code Online (Sandbox Code Playgroud)

$http
   .get(/* some params */)
   .then(function() {
      // success cases here
   }, function() {
      // error cases here
   });
Run Code Online (Sandbox Code Playgroud)

但在某些情况下,我会得到不同的行为.你能否向我解释为什么会发生这种情况,更重要的是,保证使用then()函数的相同行为的方法是什么?

angularjs angular-promise

9
推荐指数
1
解决办法
4502
查看次数

未定义的函数:$ http.post中的.succes(angular.js)

我一直在尝试使用Angular JS进行搜索但是我得到了这个奇怪的错误:TypeError:undefined不是一个函数而且它在.success上

这是我的代码:

<html ng-app="app">
<head>
<meta charset="utf-8">
<script src="angular.js"></script>
<script>
  var app = angular.module('app', []);

  app.controller('ctrl', function ($scope, $http){
      $scope.url = 'fetch.php';
      $scope.search = '';

      $scope.postLink = function(){

        $http.post($scope.url, { "data" : $scope.search}).succes(function(data, status){
          console.log(data);
        }).error(function(data, status) {
          $scope.data = data || "Request failed";
          $scope.status = status;   
        });
      }
  });

</script>
</head>
<body ng-controller="ctrl">
    <input type="text" ng-model="search">
    <input type="submit" ng-click="postLink()">
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

任何人都可以告诉我为什么它会在.succes上给我一个错误?我不允许在那里打电话吗?

提前致谢!

javascript php post json angularjs

2
推荐指数
1
解决办法
1万
查看次数

如何在成功处理程序之外使用 $http 承诺响应

$scope.tempObject = {};

 $http({
   method: 'GET',
   url: '/myRestUrl'
}).then(function successCallback(response) {
   $scope.tempObject = response
   console.log("Temp Object in successCallback ", $scope.tempObject);
}, function errorCallback(response) {

});
console.log("Temp Object outside $http ", $scope.tempObject);
Run Code Online (Sandbox Code Playgroud)

我得到响应successCallback,但没有得到$scope.tempObject外界$http。它的显示undefined

如何访问response$scope.tempObject之后$http

angularjs angular-http angular-promise

2
推荐指数
1
解决办法
3997
查看次数