2016-04-10 14 views
0

Ich habe versucht, Daten von einem Controller zum anderen zu senden. Ein kleiner Hintergrund ist Code, der in einer ionischen Anwendung verwendet wird, wenn das hilft. Ich möchte, dass die Daten von der Funktion send() an die SubCtrl gesendet werden. Die Sendefunktion wird in MainCtrl aufgerufen. Ich habe einen Dienst dafür erstellt, aber die Daten werden noch nicht geteilt. Was fehlt mir, um diese Aktion abzuschließen?Übergabe der Funktion in einen anderen Zustand

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>

Antwort

0

konnte ich dieses Problem, um herauszufinden, nachdem diese page lesen. Wenn jemand ein ähnliches Problem hat, würde ich diese Lektüre empfehlen. Auch der Video-Link zu diesem Beitrag war sehr hilfreich.

Verwandte Themen