Directive
Is a marker within the html that tells angular to run a given java script code. Basically we bind behavior between html and java script through directives.
Sample
Within the .html file
<!DOCTYPE html> <html> <body ng-controller="StoreController"> ... </body> </html>
within the java script code
function StoreController(){
 alert("Hello Dude!");
}
ng-app
Its how we attach the Application module to the page
Sample
<html ng-app="gemStore">
      <head>
        <link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
        <script type="text/javascript" src="angular.min.js"></script>
        <script type="text/javascript" src="app.js"></script>
      </head>
      <body ng-controller="StoreController as store">
        <div class="product row" ng-hide="store.product.soldOut">
          <h3 >
            {{store.product.name}}
            <em class="pull-right">{{store.product.price}}</em>
          </h3>
          <button ng-show="store.product.canPurchase"> Add to Cart </button>
        </div>
      </body>
</html>ng-controller
Attach a Controller function to the page
Sample
<html ng-app="gemStore">
      <head>
        <link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
        <script type="text/javascript" src="angular.min.js"></script>
        <script type="text/javascript" src="app.js"></script>
      </head>
      <body ng-controller="StoreController as store">
        <div class="product row" ng-hide="store.product.soldOut">
          <h3 >
            {{store.product.name}}
            <em class="pull-right">{{store.product.price}}</em>
          </h3>
          <button ng-show="store.product.canPurchase"> Add to Cart </button>
        </div>
      </body>
</html>ng-show
Within the .html file
    <!DOCTYPE html>
    <html ng-app="gemStore">
      <head>
        <link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
        <script type="text/javascript" src="angular.min.js"></script>
        <script type="text/javascript" src="app.js"></script>
      </head>
      <body ng-controller="StoreController as store">
        <div class="product row" ng-show="!store.product.soldOut">
          <h3 >
            {{store.product.name}}
            <em class="pull-right">{{store.product.price}}</em>
          </h3>
          <button ng-show="store.product.canPurchase"> Add to Cart </button>
        </div>
      </body>
    </html>
    Within the .js file
    (function(){
      var gem = { name: 'Azurite', price: 2.95, canPurchase: false, soldOut: true };
      var app = angular.module('gemStore', []);
      app.controller('StoreController', function(){
        this.product = gem;
      });
    })();
ng-hide
Within the .html file
    <!DOCTYPE html>
    <html ng-app="gemStore">
      <head>
        <link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
        <script type="text/javascript" src="angular.min.js"></script>
        <script type="text/javascript" src="app.js"></script>
      </head>
      <body ng-controller="StoreController as store">
        <div class="product row" ng-hide="store.product.soldOut">
          <h3 >
            {{store.product.name}}
            <em class="pull-right">{{store.product.price}}</em>
          </h3>
          <button ng-show="store.product.canPurchase"> Add to Cart </button>
        </div>
      </body>
    </html>Within the .js file
    (function(){
      var gem = { name: 'Azurite', price: 2.95, canPurchase: false, soldOut: true };
      var app = angular.module('gemStore', []);
      app.controller('StoreController', function(){
        this.product = gem;
      });
    })();
ng-repeat
Within the .html file
    <!DOCTYPE html>
    <html ng-app="gemStore">
      <head>
        <link rel="stylesheet" type="text/css" href="bootstrap.min.css" />
        <script type="text/javascript" src="angular.min.js"></script>
        <script type="text/javascript" src="app.js"></script>
      </head>
      <body ng-controller="StoreController as store">
        <div class="product row" ng-repeat="product in store.products">
          <h3 >
            {{store.product.name}}
            <em class="pull-right">{{store.product.price}}</em>
          </h3>
          <button ng-show="store.product.canPurchase"> Add to Cart </button>
        </div>
      </body>
    </html>
Within the .js file
    (function(){
      var gems = [
          { name: 'Pyramid', price: 2.95, canPurchase: false, soldOut: true },
          { name: 'Cube', price: 3, canPurchase: false, soldOut: true }
      ];
      
      var app = angular.module('gemStore', []);
      app.controller('StoreController', function(){
        this.products = gems;
      });
    })();
ng-src
Useful to load images within the .html file
<body ng-controller="StoreController as store">
  <ul class='list-group'>
    <li class="list-group-item" ng-repeat="product in store.products" >
      <h3>
        {{product.name}}
        <em class="pull-right"> {{ product.price | currency }} </em>
        <img ng-src="{{product.images[0].full}}"/>
      </h3>
    </li>
  </ul>
</body>
ng-init
Useful to initialize properties
<section ng-init="tab = 1"> <!-- Some html here --> </section>
ng-class
Useful to set a given class based upon a given expression
<li ng-class="{ active:tab === 3}">
   <!-- Some html here -->
</li>
ng-include
Useful to insert templates
<h3 ng-include="'product-title.html'"></h3>
Note that we are using single quotes to refer product-title.html
Module
Piece of code that holds a particular functionality
Sample
Within a java script file, (app.js)
var app = angular.module('store', [ ]);Expressions
Are elements that allow us to insert dynamic values into the html. Reference
// Aritmetic operation
<p>
  I am {{ 4 + 6 }}
</p>
// String operation
<p>
  {{ "hello " + " brother !" }}
</p>