Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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 尝试从模板向$resource工厂发送参数_Javascript_Angularjs - Fatal编程技术网

Javascript 尝试从模板向$resource工厂发送参数

Javascript 尝试从模板向$resource工厂发送参数,javascript,angularjs,Javascript,Angularjs,我可能遗漏了一些基本的东西,但我一直在思考如何做到这一点 我有一个ng重复块: <div data-class-block ng-repeat="class in classList(1304)" data-object="class"> </div> 这反过来又给工厂打电话: myclassesNest.factory('myClassesFactory', ['$http', '$resource', '$q', function (

我可能遗漏了一些基本的东西,但我一直在思考如何做到这一点

我有一个ng重复块:

<div    data-class-block    
    ng-repeat="class in classList(1304)" 
    data-object="class">
</div>
这反过来又给工厂打电话:

myclassesNest.factory('myClassesFactory', ['$http', '$resource', '$q', function ($http,     $resource, $q) {
  var myClassesResource = $resource(':sem/myclasses.json', 
  {}, 
  {'query': {method: 'GET', params: {sem: '@sem'}, isArray: false} });

  var factory = {
  list : function(semester) {
      var deferred = $q.defer();
      myClassesResource.query({sem:semester},
      function (resp) {
        deferred.resolve(resp);
      });
      return deferred.promise;
    }
  };
  return factory;
}]); 
这会彻底破坏浏览器一个接一个地抛出错误,直到选项卡崩溃。lol.Probabaly与消化循环有关,这是一个我不完全理解的角度问题

我将对
myClassesFactory.list
的调用包装在一个函数中,就像当我将它直接分配给
$scope
变量时,我收到一个错误,说它是一个对象而不是函数

TLDR;我需要能够在一个学期内通过模板来选择要从端点返回的类资源组

非常感谢您的帮助


(在任何人说要阅读$resource文档之前,我想说我今天已经读了好几次了,这里的示例没有说明这一点,因为它们将参数硬编码到控制器中。)

您明确地说,从查询调用返回的东西不是数组。如果是的话,它会抛出一个错误,而且看起来可能是,因为您正在寻找类(对我来说是复数尖叫数组)。如果你把它改为真,它能工作吗

已编辑 您正在运行一个摘要循环。摘要的工作方式如下所示:

当您的呼叫返回时,它会触发对页面的更新,该页面将调用另一个服务,从而再次启动循环


最好像您显然做的那样修复它。

您明确表示从查询调用返回的东西不是数组。如果是的话,它会抛出一个错误,而且看起来可能是,因为您正在寻找类(对我来说是复数尖叫数组)。如果你把它改为真,它能工作吗

已编辑 您正在运行一个摘要循环。摘要的工作方式如下所示:

当您的呼叫返回时,它会触发对页面的更新,该页面将调用另一个服务,从而再次启动循环


最好像你显然做的那样修复它。

你能告诉我你是否正在找回JSON吗?抛出的错误是什么?你能把一个展示这种行为的JSFIDLE示例放在一起吗?你能告诉我你是否正在找回JSON吗?抛出的错误是什么?你能把一个展示这种行为的JSFIDLE示例放在一起吗?它是一个数组,尽管改变它并不能解决问题。:/我已经用另一种方式解决了这个问题,尽管我仍然很想知道如何让它工作。现在,我已经设置了一个范围变量来保存当前学期,这样我就可以将其传递给控制器内的资源查询(这很奇怪)。不幸的是,我今天没有足够的时间来制作小提琴。我将在未来几天内尝试。谢谢你的帮助!谢谢我有一些其他的问题,这让我有几天没有注意到这一点。谢谢你的回答。我会更仔细地阅读这些文件。你的解释已经帮助我理解了这个问题。再次感谢!它是一个数组,但更改并不能解决问题。:/我已经用另一种方式解决了这个问题,尽管我仍然很想知道如何让它工作。现在,我已经设置了一个范围变量来保存当前学期,这样我就可以将其传递给控制器内的资源查询(这很奇怪)。不幸的是,我今天没有足够的时间来制作小提琴。我将在未来几天内尝试。谢谢你的帮助!谢谢我有一些其他的问题,这让我有几天没有注意到这一点。谢谢你的回答。我会更仔细地阅读这些文件。你的解释已经帮助我理解了这个问题。再次感谢!
myclassesNest.factory('myClassesFactory', ['$http', '$resource', '$q', function ($http,     $resource, $q) {
  var myClassesResource = $resource(':sem/myclasses.json', 
  {}, 
  {'query': {method: 'GET', params: {sem: '@sem'}, isArray: false} });

  var factory = {
  list : function(semester) {
      var deferred = $q.defer();
      myClassesResource.query({sem:semester},
      function (resp) {
        deferred.resolve(resp);
      });
      return deferred.promise;
    }
  };
  return factory;
}]);