My question is AngularJS: Why people prefer factory to share data between controllers
i am new in angular. so trying to know how to share data between two controller and search google. i visited few pages and found most of the time people use factory to share data. i just like to know can't we do it by service instead of factory ?
1st example
2nd example
examples are taken from this url https://stackoverflow.com/questions/21919962/share-data-between-angularjs-controllers
please guide me.
1st example
- "FirstCtrl">
- "text" ng-model="data.firstName">
Input is : {{data.firstName}}
- "SecondCtrl">
- Input should also be here: {{data.firstName}}
- myApp.factory('MyService', function(){
- return {
- data: {
- firstName: '',
- lastName: ''
- },
- update: function(first, last) {
- // Improve this method as needed
- this.data.firstName = first;
- this.data.lastName = last;
- }
- };
- });
- // Your controller can use the service's update method
- myApp.controller('SecondCtrl', function($scope, MyService){
- $scope.data = MyService.data;
- $scope.updateData = function(first, last) {
- MyService.update(first, last);
- }
- });
2nd example
- var myApp = angular.module('myApp', []);
- myApp.factory('Data', function(){
- var service = {
- FirstName: '',
- setFirstName: function(name) {
- // this is the trick to sync the data
- // so no need for a $watch function
- // call this from anywhere when you need to update FirstName
- angular.copy(name, service.FirstName);
- }
- };
- return service;
- });
- // Step 1 Controller
- myApp.controller('FirstCtrl', function( $scope, Data ){
- });
- // Step 2 Controller
- myApp.controller('SecondCtrl', function( $scope, Data ){
- $scope.FirstName = Data.FirstName;
- });
please guide me.
Rajkiran SwainPosted Jun 12, 2017, 10:07 AM