Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AngularJS—工厂中承诺ID字段的返回值_Javascript_Ionic Framework_Promise - Fatal编程技术网

Javascript AngularJS—工厂中承诺ID字段的返回值

Javascript AngularJS—工厂中承诺ID字段的返回值,javascript,ionic-framework,promise,Javascript,Ionic Framework,Promise,我正在恢复allEnquetes中的所有数据。我只是在这个列表中找到了请求的请求,但是出现了一个错误,因为allEnquetes返回了一个承诺 .factory('enquetesAPI', function($http,myConfig){ return { allEnquete: function(){ return $http.get(myConfig.remote + '/lists.asp?acao=list-enquete&codadmin=

我正在恢复
allEnquetes
中的所有数据。我只是在这个列表中找到了请求的请求,但是出现了一个错误,因为
allEnquetes
返回了一个承诺

.factory('enquetesAPI', function($http,myConfig){

  return {  
      allEnquete: function(){
      return $http.get(myConfig.remote + '/lists.asp?acao=list-enquete&codadmin='+myConfig.codadmin);

      },

      getEnquete: function(enqueteId) {
        for (var i = 0; i < this.allEnquete().length; i++) {        
          if (this.allEnquete()[i].codigo === parseInt(enqueteId)) {
            return this.allEnquete()[i];
          }
        }
        return this.allEnquete()      
      }
  };

})
.factory('enquetesAPI',函数($http,myConfig){
返回{
allEnquete:函数(){
返回$http.get(myConfig.remote+'/lists.asp?acao=list enquete&codadmin='+myConfig.codadmin);
},
getEnquete:函数(enqueteId){
对于(var i=0;i

allEnquetes会返回一个承诺,这样你就不能重复这个承诺了。检查下面的代码。我还没有测试过。但这会让你对理想情况下应该如何做有所了解

.factory('enquetesAPI', function($http, $q, myConfig){

  return {  
      allEnquete: function(){
       console.log('called');
        return $http.get(myConfig.remote + '/lists.asp?acao=list-enquete&codadmin='+myConfig.codadmin);

      },

      getEnquete: function(enqueteId) {
        var deferred = $q.defer();

        this.allEnquete().then(function(enquetes){
          var returnVal = enquetes;
          for (var i = 0; i < enquetes.length; i++) {  
            if (this.allEnquete()[i].codigo === parseInt(enqueteId)){
              returnVal = enquetes[i];
            }
          }
          deferred.resolve(returnVal);
        }, function(errorResponse){
          deferred.reject(errorResponse);
        });

        return deferred.promise;  
      }
  };

});

allEnquetes返回了一个承诺,所以你不能重复这个承诺。检查下面的代码。我还没有测试过。但这会让你对理想情况下应该如何做有所了解

.factory('enquetesAPI', function($http, $q, myConfig){

  return {  
      allEnquete: function(){
       console.log('called');
        return $http.get(myConfig.remote + '/lists.asp?acao=list-enquete&codadmin='+myConfig.codadmin);

      },

      getEnquete: function(enqueteId) {
        var deferred = $q.defer();

        this.allEnquete().then(function(enquetes){
          var returnVal = enquetes;
          for (var i = 0; i < enquetes.length; i++) {  
            if (this.allEnquete()[i].codigo === parseInt(enqueteId)){
              returnVal = enquetes[i];
            }
          }
          deferred.resolve(returnVal);
        }, function(errorResponse){
          deferred.reject(errorResponse);
        });

        return deferred.promise;  
      }
  };

});

Errors:TypeError:this.allEnquete不是函数抱歉。这是未经测试的代码。我改正了。这应该可以了。错误:TypeError:This.allEnquete不是一个函数抱歉。这是未经测试的代码。我改正了。现在应该可以了。