2013-04-01 51 views
1

我有兩個視圖,我使用路由來訪問它們。我的主要觀點是使用ListController的列表。以角度處理兩個視圖之間的數據

該控制器做一個$http請求,並得到了一些數據備份和success我做的:$scope.data = response.data;

當我點擊列表項,我的路線去#/view/:id

我能夠得到id我在其他控制器使用routeParamsDetailController

由於$scope.dataListController的一部分,該怎樣訪問說$scope.data在我DetailController

(或至少通過$scope.data[some Id]DetailController

編輯

app.factory('dataService', function(data) 
{ 
    var data = data; 
    return data; 
}); 

的答案是把這個在我的DetailControllerresponse.data仍然提供給我

presentationService().then(
    function success(response) 
    { 
     log(response.data); 
    }, 
    function error(response) 
    { 
     log(response); 
    } 
); 
+0

'dataService'應該使$ HTTP請求 – charlietfl

+0

@charlietfl看到我對InviS」後 – Ronnie

+0

最後評論這裏是一種不需要使用'另一種方式then'在控制器http://plunker.co/edit/o0opykZ7QOPfxGZCRNFp ?p =預覽 – charlietfl

回答

2

你不應該使用範圍用於控制器之間共享數據。改用服務。 觀看這部短片:http://egghead.io/video/angularjs-sharing-data-between-controllers/

希望它有幫助。

+0

確定我試圖讓這個工作。在我的http成功函數中,我正在執行'函數成功(響應){dataService(response.data)}',我得到'dataService'沒有定義.'我會在我的問題中發佈我的工廠。我認爲我做錯了。另外,我將'dataService'傳遞給我的'ListController'。 – Ronnie

+0

將$ http任務轉換爲服務。你將能夠緩存服務內的數據。數據將能夠共享。 – ValeriiVasin

+0

我的http請求已經是一項服務。讓我們更容易...這是一個餡餅:http://pastie.org/7273427 – Ronnie

相關問題