2013-11-26 14 views
0

我正在使用Breeze getEntiryByKey来查询缓存并设置AngularJS范围变量。我遇到的问题是,有时整个页面在结果加载到浏览器之前完成加载。Breeze GetEntityByKey并不总是及时获得结果

如果我一直刷新页面(通过多次按F5或ctrl-F5),它将在大多数情况下按预期显示数据,但有时候页面加载并且没有值它通过。

我调用查询缓存的函数,并在控制器文件本身中设置范围变量,以便在初始页面加载期间发生所有这些情况。

由于它只是偶尔工作,似乎有延迟造成的东西 - 虽然它不能是网络,因为这个函数应该查询本地缓存并立即返回。 See getEntityByKey in the Breeze docs.有人能告诉我我做错了什么吗?

我在Breeze服务器端使用ASP.NET Web API。

回答

0

getEntityByKey方法是同步的,这意味着它立即返回。这又意味着您的问题与角度范围不及时刷新有关,因为这是异步操作。不过,我认为你可以通过在你的getEntityByKey调用后立即调用“$ scope。$ apply()”来强制更新角度。

+0

我也想到了,尽管我忘了提及它。我在函数的末尾放了$ scope。$ apply(),但我仍然遇到同样的问题。 – mdega

+0

当您调用$ apply时,您确定getEntityByKey返回的对象是否位于$ scope对象中? –

+0

它现在似乎在工作。我只需要把$ scope。$ apply()放在正确的位置。 – mdega