An open API service indexing awesome lists of open source software.

https://github.com/minutebase/ember-portal

Render stuff here, put it over there
https://github.com/minutebase/ember-portal

Last synced: 9 months ago
JSON representation

Render stuff here, put it over there

Awesome Lists containing this project

README

          

# Ember-portal

Render stuff here, put it over there.

[Demo](http://minutebase.github.io/ember-portal)

![ember-portal in action](https://raw.githubusercontent.com/minutebase/ember-portal/master/demo.gif)

## Installation

```
ember install ember-portal
```

## Basic Usage

Setup some portals in your application template, or wherever:

```hbs
{{! app/templates/application.hbs }}


{{portal-for name="header"}}


{{outlet}}


```

These will be empty until you give them some content from some other template:

```hbs
{{! app/templates/foo.hbs }}

{{#portal-content for="header"}}
This will appear in the header
{{/portal-content}}
```

If you render to the same portal in a deeper template, it will replace the
previous content:

```hbs
{{! app/templates/foo/bar/baz.hbs }}

{{#portal-content for="header"}}
This will replace the header content
{{/portal-content}}
```

## DOM Layout

ember-portal uses [ember-wormhole](https://github.com/yapplabs/ember-wormhole) and manages the DOM element it needs to render the child elements into.

Given the following template:

```hbs


{{portal-for name="header"}}

{{#portal-content for="header"}}

the content

{{/portal-content}}
```

It will result in the following HTML:

```html




the content




```

The `{{portal-for}}` component takes `class` and `portal-class` attributes to add class names for styling, for example:

```hbs


{{portal-for name="header" class="header-outer" portal-class="header-inner"}}

{{#portal-content for="header"}}

the content

{{/portal-content}}
```

It will result in the following HTML:

```html




the content




```

## Developing

### Installation

* `git clone` this repository
* `npm install`
* `bower install`

### Running

* `ember server`
* Visit your app at http://localhost:4200.

### Running Tests

* `ember test`
* `ember test --server`

### Building

* `ember build`

For more information on using ember-cli, visit [http://www.ember-cli.com/](http://www.ember-cli.com/).