ngresource не фильтрует должным образом с OData на основе контроллера Rest

голоса
1

У меня есть контроллер на основе Web API, используя MongoDB на заднем конце.

    public class NodesRestController : ApiController
{
    private INodeService _nodeService;
    public NodesRestController(INodeService nodeService)
    {
        _nodeService = nodeService;
    }
    [EnableQuery()]
    public IQueryable<Node> Get()
    {
        return _nodeService.GetAllNodes().AsQueryable();
    }
    [EnableQuery()]
    public Node Get(Guid id)
    {
        return _nodeService.GetNodeById(id);
    }
}

в угловом приложении мой ресурс выглядит

(function() {
'use strict';
var nodeServiceRoot = '/api/NodesRest/:id';

angular.module('common.service')
    .factory(nodeResource, [$resource, appSettings, nodeResource])

function nodeResource($resource, appSettings) {
    return $resource(appSettings.serverPath + nodeServiceRoot, {
        id: '@id'
    }, {
        update: {
            method: PUT
        }
    });
}}());

Вершины Коллекция выглядит несколько экземпляров таких ниже.

{
_id : LUUID(982d248a-ef2a-f94c-be93-96ff67ca1d3f),
Name : RTR1,
IP : 1.2.221.121,
NodeGroup : {
    _id : LUUID(36a38db3-830c-4a45-8b9c-63b16394f985),
    Name : Group One
}}

Я пытаюсь получить все узлы, где NodeGroup.Name = «Первая группа», но я получить все узлы назад.

 var nodesInNodeGroup = nodeResource.query({ 'NodeGroup/Name': vm.CurrJob.NodeGroup.Name});
        nodesInNodeGroup.$promise.then(function (response) {
            nodesInNodeGroup = response;
        });

vm.CurrJob.NodeGroup.Name = 'Group One'

Кинди помощь.

Задан 02/01/2016 в 05:07
источник пользователем
На других языках...                            


1 ответов

голоса
1

Ваш контроллер не является ODataController .

Ответил 03/01/2016 в 02:44
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more