2015-11-08 79 views
0

我查询数据库和检索所有属于图像登录的用户,这里是uploadController代码:

UserImage.get($scope.user_id) 
    .success(function(data) { 

     $scope.userArray = data; 

     $location.path('/display'); 
    }); 

我可以控制台日志数据的价值它是(头文件):

0: Object 
__v: 0 
_id: "563bd07c7a49a7ac9ae1c513" 
date: "2015-11-05T21:56:12.312Z" 
gallery: "first gallery" 
name: "1b0f6d56-9ed6-4412-a0d6-897a25fb3a84-460x360.jpeg" 
user: "563bd0527a49a7ac9ae1c512" 

所以现在我测试的目标视图(display.html)可以收到$ scope.data:

<<div>{{userArray[0].name}}</div> 

$ scope.userArray不适用于display.html。 我测试了$在掠夺者的范围,它的工作正常: http://plnkr.co/edit/q5XXnfl3JxkRdG0jLyps?p=preview 所以我有点难住。

+0

什么是错误? – Sajeetharan

+0

你还没有包含你的路由,但它看起来你添加了数据到你的范围,然后改变路径,我假设一个新的路线与不同的范围? – Tristan

+0

@Tristan - 实际上是同一个控制器 - 没有改变。我尝试交换它,以便在$ scope给出数据之前更改路径,但没有区别。 – meanstacky

回答

1

首先您应该使用“.then”而不是“.success”来使用承诺系统。 If you want to know more about it

我认为你的问题也与$location.path('/display');有关,你要求你的应用程序在你得到答案时立即改变位置,所以它可能会加载另一个控制器并停止使用当前的控制器。

+0

是的,我忘了成功和错误被弃用。由于我已经在$ scope.userArray中获得了正确的数据,我认为你是对的,$ location.path正在搞砸了。我在显示视图中使用了相同的控制器,但是您能否建议替代$ location.path。谢谢 – meanstacky