0

I have been trying to send data from one controller to another. A little background this is code being used in an ionic application if that helps any. I want the to send the data from send() function to the SubCtrl. The send function is being called in MainCtrl. I have created a service for this but the data is still not being shared. What am I missing to complete this action?

    var app = angular.module('testapp', []);

    app.config(function($stateProvider, $urlRouterProvider) {
      "use strict";

      /* Set up the states for the application's different sections. */
      $stateProvider
        .state('page2', {
          name: 'page2',
          url: '/page2',
          templateUrl: 'page2.html',
          controller: 'MainCtrl'
        })
        .state('page3', {
          name: 'page3',
          url: '/page3',
          templateUrl: 'page3.html',
          controller: 'SubCtrl'
        });
      $urlRouterProvider.otherwise('/page2');

    });

    app.factory('dataShare', function($rootScope) {
      var service = {};
      service.data = false;
      service.sendData = function(data) {
        this.data = data;
        $rootScope.$broadcast('data_shared');
        console.log(data);
      };
      service.getData = function() {
        return this.data;
      };
      return service;
    });


    app.controller('MainCtrl', function($scope, $state, $http, dataShare) {

      $scope.text = 'food';
      $scope.send = function() {
        dataShare.sendData(this.text);
      };


    });

    app.controller('SubCtrl', function($scope, $state, dataShare) {
      "use strict";

      var sc = this;

      $scope.text = '';
      $scope.$on('data_shared', function() {
        var text = dataShare.getData();
        sc.text = dataShare.data;
      });



    });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<script id="page2.html" type="text/ng-template">
  <div>{text}}</div>
  <input type='text' ng-model='text' />
  <button class="button button-outline button-royal" ng-click="send();">add</button>

</script>

<script id="page3.html" type="text/ng-template">
  <div>text: {{text}}</div>
</script>
Rafael
  • 3,593
  • 3
  • 17
  • 27

1 Answers1

0

I was able to figure this issue out after reading this page. If anyone is having a similar issue I would encourage this reading. Also the video link on this post was really helpful.

Community
  • 1
  • 1
Rafael
  • 3,593
  • 3
  • 17
  • 27