2017-02-17 92 views
0

我想將一個控制器的值傳遞給其他控制器。兩個控制器都在同一個模塊上。我嘗試通過創建服務。問題是我能夠將價值傳遞給第一控制器的服務,但無法在第二個控制器上檢索該值。任何幫助,將不勝感激。在項目頁面上給出。從控制器傳遞值到另一個頁面上的另一個控制器 - AngularJS

控制器1(這是項頁)

itpApp.controller("itpAppControllerKB", function($scope, sharedProperties, $location) { 
$scope.showArticles = function(myValue) { 

     console.log('myValue: ' + myValue); 

     sharedProperties.setListName(myValue); 

     window.location.href = "/portal/articles"; 
    }; 

}); 

控制器2(這是文章頁)

itpApp.controller("itpAppControllerKBArticle", function($scope, sharedProperties) { 
$scope.article = sharedProperties.getListName(); 

console.log('selTopic: ' + $scope.article); 
} 

服務

itpApp.service('sharedProperties', function() { 
    var list_name = ''; 
    return { 

     getListName: function() { 
      return list_name; 
     }, 
     setListName: function(name) { 
      list_name = name; 
     } 
    }; 
}); 
+0

爲什麼你有服務的返回狀態?工廠需要它,但不是服務。這是你的錯誤 – Gilsdav

+1

Does window.location.href =「/ portal/articles」;部隊重新加載你的網頁?萬一你所有的服務數據丟失... – fubbe

+0

http://plnkr.co/edit/VEgt5v9VmeRPU4QIYArF?p=preview。如果我使用此鏈接的服務。它的工作,但我也獲得了以前的所有價值。 – user3781360

回答

1

請勿在您的服務中使用return語句。這裏是一個例子:

itpApp.service('sharedProperties', function() { 
    this.list_name = ''; 

    this.getListName = function() { 
     return this.list_name; 
    }; 

    this.setListName = function(name) { 
     this.list_name = name; 
    }; 
}); 
+0

@op使用這個和位置,你應該沒問題。 – fubbe

相關問題