【问题标题】:ngresource not filtering properly with oData based Rest Controllerngresource 未使用基于 oData 的 Rest Controller 正确过滤
【发布时间】:2016-01-03 12:44:09
【问题描述】:

我有一个基于 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);
    }
}

在 Angular 应用程序中,我的资源看起来像

(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"
        }
    });
}}());

Nodes Collection 看起来像下面这样的多个实例。

{
"_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 = "Group One" 的所有节点,但我将所有节点都取回。

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

vm.CurrJob.NodeGroup.Name = '第一组'

好心的帮助。

【问题讨论】:

  • 更改行 'var nodesInNodeGroup = nodeResource.query({ 'NodeGroup/Name': vm.CurrJob.NodeGroup.Name});'到 'var nodesInNodeGroup = nodeResource.query({ 'NodeGroup.Name': vm.CurrJob.NodeGroup.Name});
  • 没有工作。仍然返回整个集合
  • 你的控制器不是ODataController
  • 是的,我不久前就知道了。我想将您的评论标记为答案

标签: javascript angularjs mongodb odata ngresource


【解决方案1】:

您的控制器不是ODataController

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-08
  • 1970-01-01
  • 2017-01-11
  • 1970-01-01
  • 2021-05-26
相关资源
最近更新 更多