是否可以使用资源访问返回的成功承诺中访问范围数据



我在stackoverflow上查找了所有相关问题,但没有找到任何相关答案。也许是房间里只有我看不到的大象,但是一整天都在浪费了一整天之后,我真的很高兴有人能提供一些见识。我有一个带有示波器变量$ scope.fruits的控制器,该fruits使用资源将数据发布到/水果(人为示例(

.controller('FruitsController', ['$scope', 'addFruitsFactory', 'sliceFruitsFactory', function($scope, addFruitsFactory, sliceFruitsFactory) {
        $scope.fruits = {
          seasonal: "",
          imported: "",
          exported: ""
        }
        btn_serveFruits = function() {
          // user selects a list of fruits from a select control in html. 
          // $scope.fruits is successfully bound to this select 
          // $scope.fruits has a list of selected fruits 
          addFruitsFactory.save($scope.fruits).$promise.then(
            function(response) {
              console.log('fruits in scope ' + $scope.fruis);
              // $scope.fruits is empty here. Is it possible to access 
              // $scope data here so it can be passed to the next factory?
              sliceFruitsFactory.slice($scope.fruits);
            },
            function(response) {
              $scope.message = "Error : " + response.status + " " + response.statusText;
            }
          );
        }
      }

是否可以访问$ scope.fruits在资源返回的成功承诺中?非常感谢您的回应。谢谢!

也许我无法正确理解您。使用资源后,承诺应返回可以用来填充范围的对象。

service.save($scope.fruits).$promise.then(function(data) {
     $scope.fruits = data;
    //$scope.fruits now has the data to send to another factory/service 
});

将方法'btn_serverfruits'作为范围方法如下:

app.controller('FruitsController', ['$scope', 'addFruitsFactory', 'sliceFruitsFactory', function($scope, addFruitsFactory, sliceFruitsFactory) {
        $scope.fruits = {
          seasonal: "",
          imported: "",
          exported: ""
        }
        $scope.btn_serveFruits = function() {
          // user selects a list of fruits from a select control in html. 
          // $scope.fruits is successfully bound to this select 
          // $scope.fruits has a list of selected fruits 
          addFruitsFactory.save($scope.fruits).$promise.then(
            function(response) {
              console.log('fruits in scope ' + $scope.fruis);
              // $scope.fruits is empty here. Is it possible to access 
              // $scope data here so it can be passed to the next factory?
              sliceFruitsFactory.slice($scope.fruits);

            },
            function(response) {
              $scope.message = "Error : " + response.status + " " + response.statusText;
            }
          );
        }
      }

最新更新