Hi  rani,
Custom directives are used in AngularJS to extend the functionality of HTML. Custom directives are defined using directive function.
A custom directive simply replaces the element for which it is activated.
AngularJS provides support to create custom directives for following type of elements.
- Element directives : Directive activates when a matching element is encountered.
 
- Attribute : Directive activates when a matching attribute is encountered.
 
- CSS : Directive activates when a matching css style is encountered.
 
- Comment : Directive activates when a matching comment is encountered.
 
For more details refer below links.
AngularJS Custom Directives
HTML
MyHTML.htm
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <table class="table table-responsive">
        <tr><th>Id</th><th>Name</th><th>Country</th></tr>
        <tr><td>1</td><td>John Hammond</td><td>United States</td></tr>
        <tr><td>2</td><td>Mudassar Khan</td><td>India</td></tr>
        <tr><td>3</td><td>Suzanne Mathews</td><td>France</td></tr>
        <tr><td>4</td><td>Robert Schidner</td><td>Russia</td></tr>
    </table>
</body>
</html>
Default.htm 
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.js"></script>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css" />
    <script type="text/javascript">
        var app = angular.module('MyApp', []);
        app.directive('myTable', function () {
            var obj = {
                restrict: 'A',
                template: '<table class="table table-responsive">' +
                          '<tr><th>Id</th><th>Name</th><th>Country</th></tr>' +
                          '<tr><td>1</td><td>John Hammond</td><td>United States</td></tr>' +
                          '<tr><td>2</td><td>Mudassar Khan</td><td>India</td></tr>' +
                          '<tr><td>3</td><td>Suzanne Mathews</td><td>France</td></tr>' +
                          '<tr><td>4</td><td>Robert Schidner</td><td>Russia</td></tr>' +
                          '</table>'
            }
            return obj;
        });
        app.directive('myHtml', function () {
            var obj = {
                restrict: 'E',
                templateUrl: 'MyHTML.htm'
            }
            return obj;
        }); 
    </script>
</head>
<body>
    <div ng-app="MyApp">
        <h3>Attribute directives</h3>
        <div my-table>
        </div>
        <h3>Element directives</h3>
        <my-html />
    </div>
</body>
</html>
Screenshot
