【发布时间】:2013-04-01 22:31:27
【问题描述】:
我有两个视图,我使用路由来访问它们。我的主要视图是一个使用ListController 的列表。
该控制器执行$http 请求并获取一些数据,然后在success 上执行:$scope.data = response.data;
当我点击一个列表项时,我的路线转到#/view/:id
我可以在我的另一个控制器中使用routeParams 获得id:DetailController
由于$scope.data 是ListController 的一部分,我如何在DetailController 中访问$scope.data?
(或至少将$scope.data[some Id] 传递给DetailController)
编辑
app.factory('dataService', function(data)
{
var data = data;
return data;
});
答案是把它放在我的DetailController 中。 response.data 我仍然可以使用
presentationService().then(
function success(response)
{
log(response.data);
},
function error(response)
{
log(response);
}
);
【问题讨论】:
-
dataService应该发出 $http 请求 -
@charlietfl 查看我对 InviS 帖子的最后评论
-
这是另一种不需要在控制器 plunker.co/edit/o0opykZ7QOPfxGZCRNFp?p=preview 中使用
then的方式 -
@charlietfl 我更喜欢这种方法而不是我想出的方法。由于我在 $scope.presentations 变量上使用 ng-repeat,因此不会填充列表。如何从列表控制器中判断请求何时完成?
-
不应该检查它是否完成,范围对象上的侦听器将在数据更改时修改 DOM。将响应推送到空数组的循环是当前正在更改数据的内容。我试图找出另一种使用承诺从 $http 更新服务中数据的方法。还没有找到解决方案
标签: javascript angularjs routes