angularjs – Angular 1.0.8 $资源,具有多个可选的get参数

我的学生ulr看起来像这样:
var Student = $resource('/app/student/:studentid:courseId',{studentid:'@id',courseId:'@cid'}
);

当我没有参数调用它,我想要url是/ app / student /(工作)

var names=Student.query(
  function(){
      deferred.resolve(names);
  }
);

当我用studentid打电话给我想要的URL / app / student /?id = 88(作品)

Student.get({"id":id},function(data){
          deferred.resolve(data);
      }
    );

当我打电话只有我想要的URL / app / student /?courseid = 99(不)

Student.query({courseId:cId},function(data){
          deferred.resolve(data);
      }
    );

相反,我得到:/ app / student / 6682831673622528

当我打电话给学生和课程编号我想:/ app / student /?id = 1& courseid = 2
相反,我得到/ app / student / 12

尝试这样的URL:/ app / student /:studentid&:courseid给我/ app / student / 1& 2

不知怎的,只给学生作品,但是课程或者两者都不能像我想要的那样工作.不知道我会如何期待,因为关于多个参数的文档中没有任何内容作为查询字符串(在/ app / student / studentid / 1 / courseid / 2上扩展url),但是由于这是一个xhr请求要求/ app / student /附加的GET参数为?one = val& two = val

有没有办法做到这一点?

如果您需要将参数映射到查询参数,而不是路径参数,则不应将参数名称放入路径中.例如.学生资源应该如下所示:
var Student = $resource('/app/student/',{}
);

然后像这样的调用将无任何问题:

Student.get({id:12,courseId:55});//calls /app/student/?id=12&courseId=55
 Student.get({id:12});//calls /app/student/?id=12
 Student.get({courseId:55});//calls /app/student/?courseId=55

其他情况也会奏效.只需不要将路径参数与查询参数混淆.

相关文章

ANGULAR.JS:NG-SELECTANDNG-OPTIONSPS:其实看英文文档比看中...
AngularJS中使用Chart.js制折线图与饼图实例  Chart.js 是...
IE浏览器兼容性后续前言 继续尝试解决IE浏览器兼容性问题,...
Angular实现下拉菜单多选写这篇文章时,引用文章地址如下:h...
在AngularJS应用中集成科大讯飞语音输入功能前言 根据项目...
Angular数据更新不及时问题探讨前言 在修复控制角标正确变...