使用带有 angularjs 和 restangular 的 tastypie 过滤器
Using tastypie filters with angularjs and restangular
我正在尝试使用 AngularJS + Restangular to interact with an API created in Django with Tastypie. I have successfully interacted with the API using example code found here 作为起点(如下所示)。
yourApp.config(function(RestangularProvider) {
RestangularProvider.setBaseUrl("/api");
RestangularProvider.setResponseExtractor(function(response, operation, what, url) {
var newResponse;
if (operation === "getList") {
newResponse = response.objects;
newResponse.metadata = response.meta;
} else {
newResponse = response;
}
return newResponse;
});
RestangularProvider.setRequestSuffix('/?');
});
我想在我的 API 调用中使用 Tastypie 的过滤机制,但这些参数是通过查询字符串而不是 URI 发送的。来自 Tastypie docs: http://localhost:8000/api/v1/entry/?user__username=daniel
的示例
除了在每个请求之前重新配置 Restangular 的 setRequestSuffix 选项之外,是否有任何干净的方法可以使用 Restangular 在查询字符串中应用 Tastypie 风格的过滤器?
来自https://github.com/mgonto/restangular/issues/301#issuecomment-24273429
// GET to /partners?where={agentID: 1}
Restangular.all('partners').getList({where: '{agentID: 1}'});
// GET to /partners/123?where={agentID: 1}
Restangular.one('partners', 123).get({where: '{agentID: 1}'});
似乎 getList() 在这里起到了作用。
我正在尝试使用 AngularJS + Restangular to interact with an API created in Django with Tastypie. I have successfully interacted with the API using example code found here 作为起点(如下所示)。
yourApp.config(function(RestangularProvider) {
RestangularProvider.setBaseUrl("/api");
RestangularProvider.setResponseExtractor(function(response, operation, what, url) {
var newResponse;
if (operation === "getList") {
newResponse = response.objects;
newResponse.metadata = response.meta;
} else {
newResponse = response;
}
return newResponse;
});
RestangularProvider.setRequestSuffix('/?');
});
我想在我的 API 调用中使用 Tastypie 的过滤机制,但这些参数是通过查询字符串而不是 URI 发送的。来自 Tastypie docs: http://localhost:8000/api/v1/entry/?user__username=daniel
的示例除了在每个请求之前重新配置 Restangular 的 setRequestSuffix 选项之外,是否有任何干净的方法可以使用 Restangular 在查询字符串中应用 Tastypie 风格的过滤器?
来自https://github.com/mgonto/restangular/issues/301#issuecomment-24273429
// GET to /partners?where={agentID: 1}
Restangular.all('partners').getList({where: '{agentID: 1}'});
// GET to /partners/123?where={agentID: 1}
Restangular.one('partners', 123).get({where: '{agentID: 1}'});
似乎 getList() 在这里起到了作用。