Angularjs 将参数传递给工厂中的资源以访问控制器中的信息

Angularjs 将参数传递给工厂中的资源以访问控制器中的信息,angularjs,ngresource,Angularjs,Ngresource,因此,我使用$resource建立了一个类似这样的工厂: 'use strict'; angular.module('hscApp') /* ---------------------- Test- Using channel_id ------------------------ */ .factory('Data', function($resource){ return { retrieve: function() { param

因此,我使用$resource建立了一个类似这样的工厂:

'use strict';

angular.module('hscApp')


  /* ----------------------
  Test- Using channel_id
  ------------------------ */

  .factory('Data', function($resource){

  return {
    retrieve: function() {

          params = {
            status: 'upcoming',
            followed: 1,
            reason: 1,
            views: 1,
            per_page: 2,
            channel_id: 2165604
          };

      return $resource('/api/v1/channel_listings.json', params);
    }
  };
})
API的格式如下所示:

api/v1/channel_listings.json?status=upcoming&followed=1&reason=1&views=1&per_page=2&channel_id=2165604
我“认为”我的设置是正确的,但我不是很确定。目标是要将动态参数传递到此工厂(即通道id)。我将控制器设置为:

'use strict';

angular.module('hscApp')
  /* main controller */
  .controller('MainCtrl', function ($scope) {
    $scope.$on('$viewContentLoaded', angularOnLoad);
  })

  .controller('TestCtrl', function(Data){
    $scope.Data = Data.retrieve({
      status: 'upcoming',
      followed: 1,
      reason: 1,
      views: 1,
      per_page: 2,
      channel_id: 216560
    });
    Data.get(function(data){
      $scope.upcomingEvents = data;
    });    
  });

然后我试图通过执行{event.name}来显示JSON中的一个字段,但我得到的错误是数据未定义。我在这里做错了什么吗?

首先,您必须在TestCtrl中插入
$scope
。。。我认为问题在于
Data.get(函数(数据)行{
,它应该是
$scope.Data.get
如果你想做我认为你想做的事情,我没有在那里注入scope的最新代码。这是更新的Fiddle。它似乎根本没有返回任何东西,所以我不确定我是否正确使用了params。