AngularJS Directive
Directive
Directive is element set and realize dual direction binding.
For developers, it is UI parts, or template or something.
Easy Example
<!DOCTYPE html>
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<link rel='stylesheet' href='/bower/bootstrap/dist/css/bootstrap.css' />
<script src="/bower/angular/angular.min.js"></script>
</head>
<body>
<div class="container">
<input type="text" ng-model="name" />
<span>{{name}}</span>
<div attr="{{name}}"></div>
</div>
</body>
</html>
This example is base on nodejs, express.
Nothing special in javascript.
UI Set in JS
Next is another examples.
javascripts/directive/app.js Angular JS Code
var app = angular.module('directiveApp', []);
app.controller('Controller', ['$scope', function($scope) {
$scope.person = {
name: 'Kotori',
age: '17',
number: 2
};
}]);
app.directive('member', function() {
return {
template: 'Name: {{person.name}} Age: {{person.age}} Number: {{person.number}}'
};
});
app.directive('directiveTest', function(){
return {
restrict: 'EAC',
priority: 0,
transclude: true,
replace: false,
templateUrl: '/directive/directivetest.html',
scope: {
directiveTest: '=',
onChange: '&',
title: '@'
},
link: function postLink(scope, element, attrs, ctrl){
},
controller: ['$scope', function($scope){
}]
};
});
directive.ejs View
<!DOCTYPE html>
<html ng-app="directiveApp">
<head>
<title><%= title %></title>
<link rel='stylesheet' href='/stylesheets/style.css' />
<link rel='stylesheet' href='/bower/bootstrap/dist/css/bootstrap.css' />
<script src="/bower/angular/angular.min.js"></script>
<script src="/javascripts/directive/app.js"></script>
</head>
<body>
<div class="container">
<input type="text" ng-model="name" />
<span>{{name}}</span>
<div attr="{{name}}"></div>
<div ng-controller="Controller">
<div member>
</div>
<div directive-test>
</div>
</div>
</div>
</body>
</html>
directive.html Template
<h3>I am big</h3> <h3>We are...</h3>
Finally, we can create UI parts with events
Directive Parameter
Next is directive parameters
| Name | Description |
|---|---|
| restrict | The kind of node in html(‘E’: Tag, ‘A’: Attribute, ‘C’: Class, ‘M’: comment |
| priority | The priority to process Bigger is high priority |
| transclude | |
| template/templateUrl | HTML, templateUrl is html template file |
| scope | |
| link | |
| require |
