forked from jettro/c3-angular-directive
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgraph-app-directive.js
72 lines (60 loc) · 1.55 KB
/
graph-app-directive.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
var sampleApp = angular.module('sampleApp', []);
sampleApp.directive('outer', function() {
var outerCtrl = function($scope) {
console.log("Outer controller");
this.tryMe = function() {
console.log("outer controller: " + $scope.message);
};
this.setMessage = function(message) {
$scope.message = message;
};
};
var outerLinker = function(scope,element,attrs,outerCtrl) {
console.log("Outer linker");
scope.message = "Hello from outer linker";
console.log("outer linker: " + scope.message);
outerCtrl.tryMe();
};
return {
"restrict": "E",
"scope": {},
"template":"<div class='outer'><div class='title'>The title</div><div ng-transclude></div></div>",
"replace":true,
"transclude":true,
"controller": outerCtrl,
"link": outerLinker
}
});
sampleApp.directive('inner', function() {
var innerLinker = function(scope,element,attrs,outerCtrl) {
console.log("Inner linker");
outerCtrl.setMessage(attrs['message']);
outerCtrl.tryMe();
};
return {
"require":"^outer",
"restrict":"E",
"scope": {},
"replace":true,
"transclude":true,
"template":"<div ng-transclude></div>",
"link": innerLinker
}
});
sampleApp.directive('moreinner', function() {
var moreinnerLinker = function(scope,element,attrs,outerCtrl) {
console.log("More Inner linker");
outerCtrl.setMessage(attrs['message']);
outerCtrl.tryMe();
};
return {
"require":"^outer",
"restrict":"E",
"scope": {},
"replace":true,
"link": moreinnerLinker
}
});
sampleApp.controller('SampleCtrl', function ($scope) {
console.log("Main controller");
});