bootstrap-directives-presentation



bootstrap-directives-presentation

0 1


bootstrap-directives-presentation

talk given at angularjs vienna meetup 23/01/2014

On Github pferdefleisch / bootstrap-directives-presentation

your

a love story

by @mraaroncruz

http://github.com/pferdefleisch

The good old days

Enter Bootstrap

Now we have 2 problems

bootstrap navbar

<nav class="navbar navbar-default" role="navigation">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <a class="navbar-brand" href="#">Brand</a>
  </div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
    <ul class="nav navbar-nav">
      <li class="active"><a href="#">Link</a></li>
      <li><a href="#">Link</a></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>
          <li class="divider"></li>
          <li><a href="#">Separated link</a></li>
          <li class="divider"></li>
          <li><a href="#">One more separated link</a></li>
        </ul>
      </li>
    </ul>
    <form class="navbar-form navbar-left" role="search">
      <div class="form-group">
        <input type="text" class="form-control" placeholder="Search">
      </div>
      <button type="submit" class="btn btn-default">Submit</button>
    </form>
    <ul class="nav navbar-nav navbar-right">
      <li><a href="#">Link</a></li>
      <li class="dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a>
        <ul class="dropdown-menu">
          <li><a href="#">Action</a></li>
          <li><a href="#">Another action</a></li>
          <li><a href="#">Something else here</a></li>
          <li class="divider"></li>
          <li><a href="#">Separated link</a></li>
        </ul>
      </li>
    </ul>
  </div><!-- /.navbar-collapse -->
</nav>

So much coupling

modularization

navbar as a directive

<bs-navbar>
  <bs-navbar-branding href="/" content="Boost">
  <bs-navbar-right active="true" href="#contact" content="Contact" \>
  <bs-navbar-right href="#about" content="About" \>
</bs-navbar>

Introduction to compile

  • takes an element and its attributes
  • no scope access
  • can return a link function

can manipulate the element before the directive is rendered

let's look at the code

https://gist.github.com/pferdefleisch/8490568

Other uses

  • other complicated bootstrap elements like forms, modals
  • CSS grid systems <grid sidebar></grid>
  • swapping out Bootstrap for Foundation or others

Thank you.

by @mraaroncruz

http://aaroncruz.com

http://github.com/pferdefleisch