2016-05-12 5 views
0

I-Werte, die ich in einer anderen Seite bearbeiten möchtenerhalten Werte in einer anderen Seite bearbeiten mit kantigem

<tr ng-repeat="facilitator in listFacilitators" ng-click="showDetails(facilitator);goToFacilitatorP()"> 
    <td>{{facilitator.username}}</td> 
    <td><li><ul>{{facilitator.cwsessionsAnime}}</ul></li></td> 
    <td><li><ul>{{facilitator.profilFollow}}</ul></li></td> 
</tr> 

, wenn ich auf Ich bin der Annahme, in einer anderen Seite umgeleitet werden, um die Details zu zeigen und bearbeiten, so habe ich versucht, diese in der Steuerung zu tun:

$scope.showDetails= function(facilitator){ 
    $scope.selectedFac= facilitator; 
} 

und auf der zweiten Seite, ich dies tun:

<tr> 
    <td> {{selectedFac.username}}</td> 
    <td> {{selectedFac.lastname}}</td> 
    <td> {{selectedFac.firstname}}</td> 
    <td> {{selectedFac.title}}</td> 
</tr> 

es funktioniert auf der gleichen Seite aber nicht wenn ich umgeleitet werde, kannst du mir bitte helfen?

UPDATE: 

Ich tue dies, aber ich habe noch keine Daten in der seconde Seite: 1- Im ersten Controller für die 1 Seite erklärte ich:

profilCtrl.controller('ProfilCtrl', [ '$scope','$location', 'profilService', 'facilitatorPService', function($scope,$location, profilService, facilitatorPService) { 
/* ---- appel a facilitator Service ---- */ 
var facilitator = '';// What ever this is set to in the first place 
facilitatorPService.facilitator = facilitator; 

2- In meinem zweiten Controller (für die zweite in dem ich die Details zeigen wollen), habe ich erklärt:

facilitatorPCtrl.controller('facilitatorPCtrl', [ '$scope','$rootScope','$cookieStore','$location','membreService','facilitatorPService','userService',function($scope,$rootScope,$cookieStore,$location, membreService,facilitatorPService, userService) { 
facilitatorPservice.editFacil= function($scope){ 
    $scope.showDetails = function(){ 
     $scope.selectedFac = facilitatorPService.facilitator; 
    } 
}; 

3- Ans in meinem Dienst facilitatorPService ich habe dies:

facilitatorPService.factory('facilitatorPService', [ '$resource','$http', function($resource,$http) { 
    var service = {     
      getAllFacilitators : function($scope){ 
       return $resource('/gari-web/services/facilitators/AllFacilitators', {}, { 
        query : { 
         method : 'GET', isArray:true, 
         }} 
       }); 
      }, 
      editFacil: function($scope){ 
       var self= this; 
       self.facilitator={}; 
      }}; 
    return service; 
} ]); 

4- Mein HTML-Seite habe ich dies:

<td>{{selectedFac.username}}</td> 

Kann mir bitte jemand sagen, was ich falsch gemacht habe, finde ich nicht den Fehler

Antwort

1

Controller ‚gespült‘ werden, wenn Sie ändern die Ansichten. Um Daten von einer Ansicht zu einer anderen zu behalten, speichern Sie Ihre Daten in einem Service.

UPDATE

.service('FacilitatorService', [ 
     function() { 
      var self = this; 
      self.facilitator = {}; 
     } 
    ]) 

Dann in Ihrem Controller, injizieren Sie sich den Service, den Sie gerade erstellt haben.

.controller('FirstController', ['FacilitatorService', 
     function(FacilitatorService) { 
      var facilitator = '';// What ever this is set to in the first place 
      FacilitatorService.facilitator = facilitator; 
     } 
    ]) 

Und in Ihrem zweiten Controller

.controller('SecondController', ['FacilitatorService', '$scope', 
     function(FacilitatorService, $scope) { 
      $scope.showDetails = function(){ 
       $scope.selectedFac = FacilitatorService.facilitator; 
      } 
     } 
    ]) 

Wie diese Ihre FacilitatorService.facilitator Daten werden in allen Controllern zugänglich sein, die FacilitatorService

+0

danke für die Antwort, aber können Sie mir bitte ein Beispiel geben, wie könnte ich das tun? – Alyssa

+0

Ich habe die Antwort aktualisiert –

+0

danke für die Antwort, ich aktualisiere meine Dateien wie du gesagt hast (ich legte das Update in der Spitze), aber ich habe immer noch keine Daten in der zweiten Seite, können Sie einen Blick bitte – Alyssa

0

verwenden Ich empfehle, mit ui Router, diese beiden Probleme lösen, die Ansicht ändern und die Daten teilen.

Lesen Sie mehr über Router ui

doc http://angular-ui.github.io/ui-router/site/#/api/ui.router

Der aktuelle Zustand

$stateProvider 
    .state('current', { 
    url: "/curent", 
    templateUrl: 'current.html', 
    controller: 'currentCtrl' 
    }) 

Dann können Sie wählen, wie Sie die Ansicht ändern und die Daten gemeinsam nutzen, die erste ist die Steuerung, Die zweite ist HTML.Verwenden Sie nur ein

Von Stromregler (Option 1)

$scope.showDetails= function(facilitator){ 
    $state.go('togo', {myCurrentdata: facilitator}) ; 
} 

Von aktuellen html (option2)

<tr ng-repeat="facilitator in listFacilitators" ui-sref="togo({myCurrentdata : facilitator})"> 
    <td>{{facilitator.username}}</td> 
    <td><li><ul>{{facilitator.cwsessionsAnime}}</ul></li></td> 
    <td><li><ul>{{facilitator.profilFollow}}</ul></li></td> 
</tr> 

Der Staat, die Sie

$stateProvider 
    .state('togo', { 
    url: "/togo", 
    templateUrl: 'togo.html', 
    controller: 'togoCtrl' 
    param: {myCurrentdata: null} 
    }) 

gehen wollen zu gehen Steuerung

if($stateParams.myCurrentdata){ 
    $scope.selectedFac = $stateParams.myCurrentdata 
} 
Verwandte Themen