Components.Nav public
Component to generate bootstrap navs
Usage
Use in combination with the yielded components
<BsNav @type="pills" as |nav|>
<nav.item>
<nav.linkTo @route="foo">
Foo
</nav.linkTo>
</nav.item>
<nav.item>
<nav.linkTo @route="bar" @model={{this.model}}>
Bar
</nav.linkTo>
</nav.item>
</BsNav>
Note: the use of angle brackets
<nav.linkTo>
as shown above is only supported for Ember >= 3.10, as it relies on Ember's native implementation of theLinkComponent
. For older Ember versions please use the legacy syntax with positional arguments:{{#nav.link-to "bar" this.model}}Bar{{/nav.link-to}}
Nav styles
The component supports the default bootstrap nav styling options "pills" and "tabs" through the type
property, as well as the justified
, fill
and stacked
properties.
Active items
Bootstrap 3 expects to have the active
class on the <li>
element that should be the active (highlighted)
navigation item. To achieve that use the @route
and optionally @model
(or @models
) and @query
properties
of the yielded nav.linkTo
component just as you would for Ember's <LinkTo>
component to create a link with proper
active
class support.
Dropdowns
Use the nav.dropdown
contextual version of the Components.Dropdown component
with a tagName
of "li" to integrate a dropdown into your nav:
<BsNav @type="pills" as |nav|>
<nav.item>
<nav.linkTo @route="index">
Home
</nav.linkTo>
</nav.item>
<nav.dropdown as |dd|>
<dd.toggle>Dropdown <span class="caret"></span></dd.toggle>
<dd.menu as |ddm|>
<ddm.item><ddm.linkTo @route="foo">Foo</ddm.linkTo></ddm.item>
<ddm.item><ddm.linkTo @route="bar">Bar</ddm.linkTo></ddm.item>
</dd.menu>
</nav.dropdown>
</BsNav>
Bootstrap 3/4 Notes
Use nav.linkTo
for in-app links to ensure proper styling regardless of
Bootstrap version. Explicit use of <a>
tags in Bootstrap 4 must apply the nav-link
class and manage
the active
state explicitly.
The fill
styling is only available with Bootstrap 4
Note that only invoking the component in a template as shown above is considered part of its public API. Extending from it (subclassing) is generally not supported, and may break at any time.
Item Index
dropdownComponent {String} private
fill boolean public
Make the nav flex fill (BS4 only), see bootstrap docs
itemComponent {String} private
justified boolean public
Make the nav justified, see bootstrap docs
linkToComponent {String} private
stacked boolean public
Make the nav pills stacked, see bootstrap docs
type String public
Special type of nav, either "pills" or "tabs"