2015-05-28 2 views
0

У меня есть угловое приложение, которое вызывает web api. он отлично работал с контроллером web-api и ngresource, пока мне не понадобилось подсчитывать результаты.путают между Api Controller и контроллером oData для использования с угловым ngresource

Чтобы получить только счетчик результата, мне нужно использовать $ inlinecount, который, похоже, работает только с oDataController. с oDataControlelr на месте мои обещания не работают.

$scope.totalCount = storeCommandResource.query({ $inlinecount: "allpages", $top: 0 }); 

я получить

Error: [$resource:badcfg] query 

пожалуйста, руководство.

+0

Я думаю, вы не ввели полное сообщение об ошибке. Но, вероятно, происходит то, что вы используете метод 'query()' ресурса, который рассчитывает получить массив в качестве ответа. Я предполагаю, что ответ, который вы получаете, представляет собой просто число (или объект, содержащий счет), а не массив. Если это правда, не используйте функцию 'query()', используйте функцию 'get()': 'storeCommandResource.get()' ... –

+0

i получить ошибку, например Ошибка: [$ resource: badcfg ] get http://errors.angularjs.org/1.2.22/$resource/badcfg?p0=object&p1=array по адресу http: // localhost: 7251/Scripts/angular.js: 78: 12 at e. (анонимная функция) .q.then.p. $ resolved (http: // localhost: 7251/Scripts/angular-resource.min.js: 9: 330) at deferred.promise.then.wrappedCallback (http: // localhost: 7251/Scripts/angular.js: 11546: 81) at deferred.promise.then.wrappedCallback (http: // localhost: 7251/Scripts/angular.js: 11546: 81) по адресу http: // localhost: 7251/Сценарии/angular.js: 11632: 26 at Scope. $ Eval (http: // localhost: 7251 .............. ......... –

ответ

0

его внешний вид, как я могу использовать oDatacontroller с установкой модели строителя, как этот

  ODataConventionModelBuilder builder = new ODataConventionModelBuilder(); 
     builder.EntitySet<StoreCommand>("StoreCommandsRest"); 
     config.Routes.MapODataServiceRoute(routeName: "OData", routePrefix: "api", model: builder.GetEdmModel()); 
     config.AddODataQueryFilter(); 

и все мне нужно, чтобы изменить был запрос, чтобы получить

$scope.totalCount = storeCommandResource.get({ $inlinecount: "allpages", $top: 0 }); 

тогда я читаю мое возвращенное количество как

response["odata.count"] 
Смежные вопросы