示例显示如何从loopback SDK查询对象关系

时间:2013-12-16 16:06:52

标签: ios strongloop

我正在尝试查询环回服务器以获取模型之间的关系, 我有一个“Section”模型和一个“item”模型,以及它们之间的hasMany关系,所以我可以使用来自其他客户端的/ sections /:id / items查询部分中的所有项目。

如何从loopback iOS客户端执行相同的查询?任何文档或代码示例?

1 个答案:

答案 0 :(得分:4)

iOS SDK支持对Model进行过滤,使用invokeStaticMethod上的LBModelPrototype并传递过滤器参数:@{ @"filter[order]":@"inventory ASC",@"filter[limit]":@3}字符串。

[objectProto invokeStaticMethod:@"filter" parameters:@{ @"filter[order]":@"inventory ASC",@"filter[limit]":@3} success:staticMethodSuccessBlock failure:staticMethodErrorBlock];

我做了一个简单的iOS示例,向您展示针对您可以找到的自定义模型“产品”类型的简单过滤器here

如果多个过滤器请求不是一个好的解决方案,您还可以创建自定义远程方法以在模型类型上提供自定义方法。在Node中间层LoopBack数据Juggler Data Source Juggler提供用于管理多个数据关系的ORM功能

工程团队还就LoopBack-ios GitHub回购提供了一些反馈:

SDK中尚不支持此功能。您应该能够通过继承LBModel并添加类似于此的方法来实现这一目标。

- (void)relatedItems:(LBModelAllSuccessBlock)success
                   failure:(SLFailureBlock)failure {
    [self invokeMethod:@"items"
            parameters:@{}
               success:^(id value) {
                   NSAssert([[value class] isSubclassOfClass:[NSArray class]], @"Received non-Array: %@", value);

                   NSMutableArray *models = [NSMutableArray array];

                   [value enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
                       [models addObject:[self modelWithDictionary:obj]];
                   }];

                   success(models);
               }
               failure:failure];
}