--- layout: fluid/docs_base version: "<$ version.current.name $>" category: storage id: "<$ doc.name|lower|replace(' ','-') $>" title: "<$ doc.name $> - Ionic Framework" --- <@ macro paramList(paramData) -@> <@- if paramData -@>( <@- for param in paramData -@> <$ param | escape $><@ if not loop.last @>, <@ endif @> <@- endfor @>) <@- endif @> <@- endmacro -@> <@ macro returnObject(params) -@> <@- if params -@>

Property | Type | Details
--- | --- | ---
<@ for param in params @>
<$ param.key $> | <$ param.type | code $> | <$ param.description | marked $>
<@ endfor @>

<@- endif @> <@- endmacro -@> <@ macro githubViewLink(doc) -@> <$ doc.fileInfo.relativePath $> (line <$ doc.location.start.line+1 $>) <@- endmacro -@> <@ macro paramTable(params, isDirective) -@>

<@ if isDirective @>Attr<@ else @>Param<@ endif @> | Type | Details
--- | --- | ---
<@ for param in params @>
<$ param.name $> <@ if param.alias @>| <$ param.alias $><@ endif @> <@ if param.type.optional @> (optional) <@ endif @> | <$ typeList(param.typeList) $> | <$ param.description | marked $> <@ if param.default @> (default: <$ param.default $>) <@ endif @>
<@ endfor @>

<@- endmacro -@> <@ macro inputTable(params, isDirective) -@>

Attr | Type | Details
--- | --- | ---
<@ for param in params @>
<$ param.name $> | `<$ param.type $>` | <$ param.description | marked $>
<@ endfor @>

<@- endmacro -@> <@ macro outputTable(params, isDirective) -@>

Attr | Details
--- | ---
<@ for param in params @>
<$ param.name $> | <$ param.description | marked $>
<@ endfor @>

<@- endmacro -@> <@- macro functionSyntax(fn) @> <@- set sep = joiner(', ') -@> `<$ fn.name $><@- if not fn.isProperty @>(<@ endif -@><@- for param in fn.params @><$ sep() $> <@- if param.type.optional @>[<@ endif -@> <$ param.name $> <@- if param.type.optional @>]<@ endif -@> <@ endfor @><@- if not fn.isProperty @>)<@ endif -@>` <@ if fn.alias @>(alias: <$ fn.alias $>)<@ endif @> <@ endmacro -@> <@ macro typeList(types) -@> <@ set separator = joiner("|") @> <@ for type in types @><$ separator() $><$ type | code $><@ endfor @> <@- endmacro -@> <@- macro typeInfo(fn) -@> <$ typeList(fn.typeList) $> <$ fn.description | marked $> <@- endmacro -@> <@ block body @> <@ block content @> <@ block header @>

# <@ if doc.docType == "directive" @> <$ doc.name | dashCase $> <@ else @> <$ doc.name $> <@- if doc.directiveInfo @>

### `<$ doc.directiveInfo.properties[0].values $>`

<@ endif -@> <@ endif @> <@ if doc.parent @>
Child of <$ doc.parent $> <@ endif @> <@ if doc.delegate @>
Delegate: <$ doc.delegate $> <@ endif @>

Improve this doc <@ endblock @> <@ block description @> <$ doc.description | marked $> <@ endblock @> <@ if doc.usage @>

## Usage

<@ block usage @> <$ doc.usage | marked $> <@ endblock @> <@ endif @> <@ if doc.properties @>

## Attributes:

<@ set hasTypes = false @> <@ for prop in doc.properties @> <@ if prop.type @> <@ set hasTypes = true @> <@ endif @> <@ endfor @> <@ if hasTypes @>
<@ endif @>
Attribute | Type | Description
--- | --- | ---
<@ for prop in doc.properties @>
<@ if hasTypes @>
<@ endif @>
<$ prop.name $> | <$ prop.type.name $> | <$ prop.description $>
<@ endfor @>

<@ endif @> <@- if doc.statics.length -@>

## Static Members

<@- for method in doc.statics @><@ if not method.internal @>

### <$ functionSyntax(method) $>

<$ method.description $> <@ if method.params @><$ paramTable(method.params) $><@ endif @> <@ if method.this @>

#### Method's `this` <$ method.this $>

<@ endif @> <@ if method.returns @>
Returns: <$ typeInfo(method.returns) $> <@ if method.returnsObjectParams @> <$ returnObject(method.returnsObjectParams) $> <@ endif @>
<@ endif @> <@ endif @> <@ endfor -@> <@ endif @> <@- if doc.members and doc.members.length @>

## Instance Members

<@- for method in doc.members @>

### <$ functionSyntax(method) $>

<$ method.description $> <@ if method.params @><$ paramTable(method.params) $><@ endif @> <@ if method.this @>

#### Method's `this` <$ method.this $>

<@ endif @> <@ if method.returns @>
Returns: <$ typeInfo(method.returns) $> <@ if method.returnsObjectParams @> <$ returnObject(method.returnsObjectParams) $> <@ endif @>
<@ endif @> <@ endfor -@> <@- endif -@> <@- if doc.inputs and doc.inputs.length @>

## Input Properties

<$ inputTable(doc.inputs) $> <@- endif -@> <@- if doc.outputs and doc.outputs.length @>

## Output Events

<$ outputTable(doc.outputs) $> <@- endif -@> <@ block advanced @> <@- if doc.advanced -@>

## Advanced

<$ doc.advanced | marked $> <@- endif -@> <@ endblock @> <@- if doc.see @>

## Related

<@ for s in doc.see @> <$ s | safe $> <@- if not loop.last @>,<@- endif -@> <@- endfor -@> <@- endif -@> <@ endblock @> <@ endblock @>