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 尝试这样的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 其他情况也会奏效.只需不要将路径参数与查询参数混淆. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |