如何让ng-admin过滤器使用loopback API

时间:2016-05-18 14:31:08

标签: angularjs loopback ng-admin

我是ng-admin和angularjs的新手。我正在尝试将ng-admin与环回用于管理面板集成。

我无法使用ng-filters过滤器处理环回 因为这个我认为reference_list和其他过滤器不能正常工作。

问题是我无法在我的api请求中包含where过滤器  我正在尝试使用restangular

下面是代码

// custom filters
if (params._filters) {
    for (var filter in params._filters) {
        params['filter[where]'] = "{" + entry.field + ":"  + rams._filters[filter] + "}";
    }
    delete params._filters;
}

2 个答案:

答案 0 :(得分:0)

对于“where”过滤器可以是这样的:

dbConStr = "DRIVER={MySQL ODBC 5.3 Unicode Driver};Server=mysqlserver.mydomain.com;Database=MyDatabase;User=MyUser;Password=MyPassword;"

答案 1 :(得分:0)

这是我的整个拦截器,用于处理使用环回的分页,排序和过滤。希望能节省一些时间。请注意,以“id”结尾的关系字段上的过滤器使用相等性进行处理,而其他字段上的过滤器使用“like”。

myApp.config(['RestangularProvider', function (RestangularProvider) {
    RestangularProvider.addFullRequestInterceptor(function(element, operation, what, url, headers, params) {
        if (operation == "getList") {
            // custom pagination params
            if (params._page) {
                params["filter[skip]"]= (params._page - 1) * params._perPage;
                params["filter[limit]"] = params._perPage;
            }
            delete params._page;
            delete params._perPage;
            // custom sort params
            if (params._sortField) {
                params["filter[order]"] = params._sortField + " " + (params._sortDir || 'ASC');
                delete params._sortField;
                delete params._sortDir;
            }
            // custom filters
            if (params._filters) {
                var filterClause = "";
                var i = 0;
                for (var filter in params._filters) {
                    if (filter.endsWith('id')) {
                        params["filter[where][and][" + i + "][" + filter + "]"] = params._filters[filter];
                    } else {
                        params["filter[where][and][" + i + "][" + filter + "][like]"] = '%' + params._filters[filter] + '%';
                    }

                    i++;
                }
                delete params._filters;
            }
        }
        return { params: params };
    });
}]);