¿Cómo pasar parámetros al usar el servicio de recursos?

Una pregunta muy novata:

Estoy tratando de construir un objeto de recursos usando el método de fábrica:

.factory('Magazines', [function ($resource) {

    var url = document.URL;
    var urlArray = url.split("/");
    var organId = urlArray[urlArray.length-1];

    return $resource('http://localhost/ci/api/magazines/:id', {
        loginID : organEntity,
        password : organCommpassword,
        id : organId
    });
  }])

Este método es fácil porque todos los parámetros están predefinidos, organEntity y organCommpassword se definen dentro de la etiqueta.

Ahora, para un objeto de recurso diferente, necesito pasar el parámetro cuando se llama a la fábrica.

Me imagino que el código de llamada de este objeto de recurso debería ser:

.controller('ResrouceCtrl', function($scope, Magazines) {
      $scope.magazines = Magazines.query();
});

Sé que el método de consulta () puede agregar parámetros:Magazines.query(params, successcb, errorcb);

Me pregunto si acabo de pasar los parámetros, ¿puedo obtener el parámetro en la fábrica? ¿Cómo especificar tales parámetros pasados ​​en el método de fábrica?

Por ejemplo, ahora supongamos que ya no puedo obtener el órgano de la url, necesito pasarlo desde mi controlador, ¿cómo recibir el órgano dentro del método de fábrica?

Aquí está mi recurso js:

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


    return $resource('http://localhost/dooleystand/ci/api/magCommenct/:id', {
      loginID : organEntity,
      password : organCommpassword,
      id : '@magId' //pass in param using @ syntax
    });
  })

Aquí está mi controlador:

$scope.magComments = MagComments.query({magId : 1});

Intenté pasar el parámetro, pero causa un error.

Respuestas a la pregunta(2)

Su respuesta a la pregunta