2016-05-12 40 views
0

我有,我想在其他頁面獲得值在其他頁面編輯與角

<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> 

編輯值當我點擊我假設在另一個頁面顯示的細節被重定向並對其進行編輯,所以我試圖做這個控制器:

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

,並在第二頁,我這樣做:

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

它在同一頁面中工作,但不是在我重定向時,你能幫助我嗎?

UPDATE: 

我這樣做,但我還是在頁面Seconde系列不數據: 1-在第一控制器爲1頁,我宣佈:

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。在我的第二個控制器(在這裏我想顯示細節)第二,我宣佈:

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-答在我的服務facilitatorPService我有這樣的:

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; 
} ]); 

在我的HTML頁面4-我把這個:

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

有人可以告訴我我做錯了什麼,我沒有發現其中的錯誤

回答

1

控制器的「刷新」時你改變了看法。要將數據從視圖保存到另一個視圖,請將數據存儲在服務中。

UPDATE

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

然後在你的控制器,自己注射剛剛創建的服務。

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

而在你的第二個控制器

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

與此類似,您FacilitatorService.facilitator數據將在所有的控制器使用FacilitatorService

+0

謝謝你的回覆,但你能舉個例子嗎?請問我該怎麼做? – Alyssa

+0

我已經更新了答案 –

+0

謝謝你的回覆,我更新了我的文件,就像你說的(我把更新放在最前面),但是我還沒有在seconde頁面中輸入數據,請耐心等待 – Alyssa

0

我建議使用UI路由器入店,這解決了兩個問題,視圖更改和數據共享。

瞭解更多關於路由器UI

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

當前狀態

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

然後你可以選擇如何更改視圖和共享數據,第一個是控制器,第二個是html。僅使用一個

從電流控制器(選項1)

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

從當前的HTML(選項2)

<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> 

你想要的狀態去

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

要進入控制器

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