2013-04-01 31 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

相关问题