Angularjs:从控制器传递参数到工厂

时间:2014-04-24 12:09:40

标签: angularjs angular-services

我在服务中有以下代码

define(['./module'], function(services) {
'use strict';
services.factory('user_resources', ['$resource', '$location', function($resource, $location) {
       return $resource("", {},
                {
                    'testService':{method:"GET",url:'http://11.11.11.11/url/index.php?data={method:method_name,params:{param1:value,param2:value,}}',isArray:true}
                });
 }]);
});
从控制器

我正在调用这个工厂方法如何从控制器传递参数到这个testService?

以下是控制器中用于调用此工厂的代码

user_resources.testService().$promise.then(function(data) {
  console.log("****************************");        
  console.log(data);
  $scope.mylist=data;     
});

2 个答案:

答案 0 :(得分:1)

不是$resource如何运作。

$resource("http://11.11.11.11/url/index.php", 
            {'testService':{method:"GET",url:'http://11.11.11.11/url/index.php',isArray:true}})

然后你用:

来称呼它
var theObjToSend = {
                    method:method_name,
                    params:
                         {
                            param1:value,
                            param2:value
                         }
                   };
new user_resources({data: theObjToSend}).testService();

user_resources.testService({data: theObjToSend});

它将序列化对象,因此它可能看起来很奇怪。您不使用查询参数的任何原因?
e.g。

?method=method_name&params={param1:value,param2:value}

答案 1 :(得分:1)

你应该检查这个视频:https://egghead.io/lessons/angularjs-using-resource-for-data-models

return $resource("http://11.11.11.11/url/index.php");