2016-08-25 42 views
0

我有一个在调用$http.get服务(承诺)的控制器初始化时调用的函数。这个承诺从Web服务中检索一个项目列表。对于列表分页的属性,我也有一个$watch

我的问题是,我在$watch取决于承诺(和$watch没有看到它,列表只加载一次)。所以在加载页面时,调用webservice,然后在列表初始化之前调用$watch,然后获得我的承诺。那么$ watch中发生的是不正确的行为。

有没有办法让$watch等待承诺退货?

+1

将'$ watch'表达式放在'.then'或'.done'中(无论你使用哪一个)。你的问题太抽象了。也许如果我能看到代码,我可以提供帮助。 –

+1

你可以在'function'里面加一个手表,当你的承诺完成时调用这个函数,这样它就可以得到寄存器。 –

+0

那么工作,对于这个非常愚蠢的问题感到抱歉,我不知道为什么我以前没有尝试过。谢谢你们俩 – Krihox

回答

0

最好是发布一些代码来获得正确的答案。

我建议您应该在分页对象上使用$watchCollection,或使用第三个参数objectEquality = true使用$watch

要更新从您的Web服务加载的列表,您不应使用承诺对象上的$watch,您应该使用承诺的方法.than()