iOS中HTML套用模板

套用模板能方便的让程序猿自定义格式输出。有人会想,web前端为什么不用模板?你想,如果有些数据是在APP端处理后显示的,那么web前端如何显示?再请求?

GitHub-MGTemplatengine(复杂强大)

GitHub-GRMustache(简单活跃)

GRMustache使用

GRMustache


#import "GRMustache.h"

a.html 放入项目中








{{ name }}

{{ content }}

使用


#improt "GRMustache.h"


NSString *fileName = @"a.html";

NSString *path = [[[NSBundle mainBundle] boundPath] stringByAppendingPathComponent:fileName];

NSstring *template = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

NSDictionary *param = @{@"name":@"yk",@"content":@"hello"};

NSString *content = [GRMustacheTemplate renderObject:param fromString:template error:nil];

常使用的模板

{{... }}

传递布尔值,如果为真则显示in_ca中“sth”内容 ,反之不显示


{{name}}


@{@"name":@"yk"}   //输出:yk

{{#...}} sth {{/...}}

传递布尔值,如果为真则显示in_ca中“sth”内容 ,反之不显示


{{#in_ca}}

     sth 

{{/in_ca}}


@{@"in_ca":True}

{{{...}}}

HTML标签 不 转换为标签转移符


{{company}}


@{@"company":@"GitHub"} //输出:GitHub 只有两{}输出:<b>GitHub</b>

{{#...}} {{...}} {{/...}}

List列表,传递一个数组字典


{{#repo}}
  {{name}}
{{/repo}}

@{@"repo":@["name":@"1",@"name":@"2",@"name":@"3"]}

/*

输出:

1

2

3

*/

{{#...?}} {{...}}! {{/...?}}

如果只是想单纯的使用文本(传递的不是list)用这个...


{{#person?}}

    Hi {{name}}!

 {{/person?}}


@{@"person?":@{"name":@"Jon"}} //输出:Hi Jon

{{$...}} {{...}} {{/...}} {{^...}} ... {{/...}}

传递list,如果list是空,显示^{{...}}的内容


{{#repo}}
  {{name}}
{{/repo}}
{{^repo}}
  No repos :(
{{/repo}}

@{@"repo",[]} //输出: No repos :(

你可能感兴趣的:(iOS中HTML套用模板)