var directives = angular.module('myModule', []); directives.directive('list', function() { return { restrict: 'A', scope: { listItems: '=' }, replace: true, template: '<ul><li ng-repeat="item in listItems">*{{item}}*</li></ul>' }; }); directives.factory('BaseModel', function() { return function() { return { fruits: ['apples', 'bananas', 'tomatoes'] }; } }); function UserSignupPage($scope, BaseModel) { $scope.model = new BaseModel(); } function AnotherPage($scope, BaseModel) { $scope.model = new BaseModel(); } UserSignupPage.$inject = ['$scope', 'BaseModel']; AnotherPage.$inject = ['$scope', 'BaseModel'];
<h1>Testing</h1> <div ng-controller="UserSignupPage"> <p>Fruits!</p> <div data-list="" data-list-items="model.fruits"></div> </div> <div ng-controller="AnotherPage"> <p>Fruits!</p> <div data-list="" data-list-items="model.fruits"></div> </div>