app3.js:
function configApp() {
// todo configuration
}
function HeaderController( $scope ) {
$scope.buttons = ['Home', 'About'];
}
function FeedbackFormController( $scope, Db ) {
$scope.sendFeedback = function( message )
{
var db = new Db(); // Factories are not singletons, and require to use 'new' keyword
db.send( message );
}
}
function DbService() {
this.send = function( data )
{
return data != undefined;
}
}
// bundle app
var app = angular.module('app', []);
app.config(configApp);
app.service('DbService', DbService);
app.factory('Db', DbService);
app.controller('HeaderController', ['$scope', HeaderController]);
app.controller('FeedbackFormCtrl', ['$scope','Db', FeedbackFormController]);
// or:
angular
.module('app2', [])
.config(configApp)
.service('DbService', DbService)
.factory('Db', DbService)
.controller('HeaderController', ['$scope', HeaderController])
.controller('FeedbackFormCtrl', ['$scope','Db', FeedbackFormController]);
app3.html
<html>
<head>
<script src="https://code.angularjs.org/1.5.8/angular.min.js"></script>
<script src="app3.js"></script>
</head>
<body ng-app="app">
<div ng-controller="HeaderController">
<ul>
<li ng-repeat="button in buttons">{{button}}</li>
</ul>
</div>
<div ng-controller="FeedbackFormCtrl">
<button ng-click="sendFeedback"/>
</div>
</body>
</html>