<!DOCTYPE html>
<html ng-app="plunker">
<head>
<meta charset="utf-8" />
<title>AngularJS Plunker</title>
<script data-require="angular.js@1.2.4" data-semver="1.2.4" src="http://code.angularjs.org/1.2.4/angular.js"></script>
<link rel="stylesheet" href="style.css" />
<script src="script.js"></script>
</head>
<body>
<div ng-controller="MainCtrl">
<helloworld />
</div>
<div ng-controller="SecondCtrl">
<helloworld />
</div>
</body>
</html>
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope, myService,myFactory,myProvider){
$scope.service_name = myService.sayHello();
myFactory.set("brandnew name");
$scope.factory_name = myFactory.sayHello();
$scope.provider_name = myProvider.sayHello();
});
app.controller('SecondCtrl', function($scope, myService,myFactory){
$scope.service_name = myService.sayHello();
$scope.factory_name = myFactory.sayHello();
});
app.directive('helloworld',function(){
return {
template: 'Service {{service_name}}'+
'<br />Factory {{factory_name}}'+
'<br />Provider {{provider_name}}',
restrict: 'E',
};
});
app.service('myService', function() {
// service is just a constructor function
// that will be called with 'new'
var name = 'service'
this.sayHello = function() {
return "Service says " + name + "!";
};
});
app.factory('myFactory', function() {
// factory returns an object
// you can run some code before
return {
set: function(new_name){
this.name = new_name;
},
name: "factory name",
sayHello : function(name) {
return "Factory says " + this.name + "!";
}
}
});
var providerService = function(){
this.$get = function(){
return {
set: function(new_name){
this.name = new_name;
},
name: "factory name",
sayHello : function(name) {
return "Provider says " + this.name + "!";
}
}
};
}
app.config(function($provide){
$provide.provider('myProvider',providerService);
});
/* Styles go here */
This simple directive insert a scope variable into a template.