Backbone设置动态解析

时间:2015-08-12 01:27:22

标签: backbone.js backbone-collections

collections的Backbone文档显示了在定义集合时设置解析的示例。

// example constructor method
-(void) jsonStringWithPhoneReason:(NSString*)reason phoneId:(NSInteger)phoneId phoneType:(NSString*)phoneType
{
    // create device detail dictionary
    NSDictionary *deviceOneDetail = @{
                                      @"id" : @(phoneId),       // <- set phone id as NSNumber
                                      @"phoneType" : phoneType  // <- set your string phone type
                                      };

    // create device dictionary
    NSDictionary *deviceOne       = @{
                                      @"phoneReason" : reason,          // <- set your phone reason string
                                      @"phoneType" : @[deviceOneDetail] // <- set your phone type dictionary within an array
                                      };

    // create phone list dictionary with any device dictionaries you want to add
    NSDictionary *phoneListDict   = @{
                                      @"phoneList" : @[
                                                        deviceOne,      // <- add your device to the phone list array of dictionaries
                                                        // deviceTwo...
                                                        ]
                                      };

    NSString *jsonString = [self convertToJsonString:phoneListDict];    // <- convert the dictionary into a json string and use however you wish

    // your json string should now look like this assuming you pass 'End of Contract', 5 & 'Android Smartphone' as arguments to this method
    // {"phoneList":[{"phoneReason":"End of Contract","phoneType":[{"id":5,"phoneType":"Android Smartphone"}]}]}
}



-(NSString*) convertToJsonString:(NSDictionary*)dictionary
{
    NSError *error;

    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dictionary
                                                       options:0 // Pass 0 if you don't care about the readability of the generated string
                                                         error:&error];

    if (error)
    {
        NSString *errorDesc = [NSString stringWithFormat:@"Error creating json data from dictionary: %@", error.localizedDescription];
        NSLog(@"ERROR: %@", errorDesc);
        jsonData = nil;
        return nil;
    }

    NSString *returnString = nil;

    if(jsonData != nil)
    {
        returnString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
    }

    return returnString;

}

但是,有没有办法在实例化Backbone集合后设置解析函数?

var Tweets = Backbone.Collection.extend({
  // The Twitter Search API returns tweets under "results".
  parse: function(response) {
    return response.results;
  }
});

0 个答案:

没有答案