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

前端之家收集整理的这篇文章主要介绍了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

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

原文链接:https://www.f2er.com/angularjs/142965.html

猜你在找的Angularjs相关文章