Javascript 在角度视图中处理两个视图之间的数据
我有两个视图,我使用路由访问它们。我的主视图是一个使用Javascript 在角度视图中处理两个视图之间的数据,javascript,angularjs,routes,Javascript,Angularjs,Routes,我有两个视图,我使用路由访问它们。我的主视图是一个使用ListController的列表 该控制器执行一个$http请求并获取一些数据,然后在成功时执行:$scope.data=response.data 当我单击列表项时,我的路线将转到#/view/:id 我可以使用另一个控制器中的routeParams获取id:DetailController 由于$scope.data是ListController的一部分,如何访问我的DetailController中的$scope.data (或至少将
ListController
的列表
该控制器执行一个$http
请求并获取一些数据,然后在成功时执行:$scope.data=response.data代码>
当我单击列表项时,我的路线将转到#/view/:id
我可以使用另一个控制器中的routeParams
获取id
:DetailController
由于$scope.data
是ListController
的一部分,如何访问我的DetailController
中的$scope.data
(或至少将$scope.data[某些Id]
传递给DetailController
)
编辑
app.factory('dataService', function(data)
{
var data = data;
return data;
});
答案是将其放在我的DetailController
中<代码>响应。我仍然可以使用数据
presentationService().then(
function success(response)
{
log(response.data);
},
function error(response)
{
log(response);
}
);
不应使用作用域在控制器之间共享数据。使用服务代替。
观看以下短片:
希望能有所帮助。好的,我正在努力让它发挥作用。在我的http成功函数中,我正在执行函数成功(response){dataService(response.data)}
并且我得到dataService
是未定义的。我想我做错了。另外,我正在将dataService
传递给我的ListController
将您的$http任务移动到服务中。您将能够在服务中缓存数据。并且数据可以共享。我的http请求已经是一个服务了。让我们简化一下……这里有一个问题:发出$http请求的服务也应该在控制器之间共享数据。我明白你的意思,但我无法让它工作。我正在观看另一个youtube视频,内容是关于这项服务的工作原理dataService
应该会让$httprequest@charlietfl查看我在Invi上的最后一条评论“这里有另一种不需要在controller@charlietfl中使用then
的方法,我更喜欢这种方法,而不是我想出的方法。因为我在$scope.presentations变量上使用了ng repeat,所以没有填充列表。如何从列表控制器中判断请求何时完成?不必检查请求是否完成,scope对象上的侦听器将在数据更改时修改DOM。将响应推入空数组的循环是当前更改数据的原因。我正试图找到另一种方法,使用Promissions从$http更新服务中的数据。还没有找到解决办法