很抱歉,这是一个愚蠢的问题,因为它已经在文档中讨论过了,但是我无法让它工作(我是AngularJS的新手)。
我试图在django-rest框架的基础上使用ng-admin为我的数据库编写一个接口。问题是ng-admin中的默认分页类似于_page=1&_perPage=30,而在django-rest-框架中则是?limit=30&offset=1。因此,当ng-admin试图获取它时,它会收到一个301响应。文件中说:
例如,要在整个应用程序中使用偏移量和限制(而不是_page和_perPage ),请使用以下代码: RestangularProvider.addFullRequestInterceptor(function(element,(‘RestangularProvider’,function(RestangularProvider) {myApp.config操作,什么,url,标头,参数,httpConfig) { if (操作== 'getList‘& what == 'entityName') { params.offset = (params._page - 1) * params._perPage;params.limit = params._perPage;删除params._page;删除params._perPage;}返回{ params: params };});});
问题是,我不知道如何将其具体地合并到代码中,即:
var myApp = angular.module('myApp', ['ng-admin']);
myApp.config(['NgAdminConfigurationProvider', function (nga) {
var admin = nga.application('My First Admin')
.baseApiUrl('http://localhost:8000/CSP_site/');
var algae = nga.entity('algae');
algae.listView().fields([
nga.field('name'),
nga.field('id'),
]);
admin.addEntity(algae);
nga.configure(admin);
}]);任何提示都将不胜感激。
谢谢!
发布于 2018-01-02 02:27:54
这应该是为了你:
var myApp = angular.module('myApp', ['ng-admin']);
myApp.config(['NgAdminConfigurationProvider', 'RestangularProvider', function (nga, RestangularProvider) {
var admin = nga.application('My First Admin')
.baseApiUrl('http://localhost:8000/CSP_site/');
var algae = nga.entity('algae');
algae.listView().fields([
nga.field('name'),
nga.field('id'),
]);
admin.addEntity(algae);
nga.configure(admin);
RestangularProvider.addFullRequestInterceptor(function(element, operation, what, url, headers, params, httpConfig) {
if (operation == 'getList' && what == 'algae') {
params.offset = (params._page - 1) * params._perPage;
params.limit = params._perPage;
delete params._page;
delete params._perPage;
}
return { params: params };
});
}]);在数组的第二个索引中添加RestangularProvider,将其作为.config函数中的第二个参数注入。
其余的是复制粘贴,除了what == 'entityName',它变成了what == 'algae',因为algae是您在上面添加的实体。
我希望这能帮上忙。
https://stackoverflow.com/questions/48054826
复制相似问题