Angularjs 在从另一个页面向数据库(couchbase)中添加项目后,如何从angular.js中的页面升级列表?

Angularjs 在从另一个页面向数据库(couchbase)中添加项目后,如何从angular.js中的页面升级列表?,angularjs,couchbase,Angularjs,Couchbase,在“创建”页面中创建新列表后,更新仪表板页面上的数据列表时出现问题。它已保存在数据库中,但未在视图中更新。我单击浏览器上的“刷新”按钮后,它会更新,但这是一个单页web应用程序。在添加上一页的数据后,如何更新仪表板页上的列表而不刷新该页?我用couchbase做数据库 这里的问题是,您正在从持久性存储中加载内容,然后内容就按原来的角度加载,要检索任何更新,您必须从持久性存储中重新获取内容。不幸的是,监视后端并不是那么简单 这里有一些选项:如果您是在站点的角度组件中进行更改,那么您可以在创建新页面

在“创建”页面中创建新列表后,更新仪表板页面上的数据列表时出现问题。它已保存在数据库中,但未在视图中更新。我单击浏览器上的“刷新”按钮后,它会更新,但这是一个单页web应用程序。在添加上一页的数据后,如何更新仪表板页上的列表而不刷新该页?我用couchbase做数据库

这里的问题是,您正在从持久性存储中加载内容,然后内容就按原来的角度加载,要检索任何更新,您必须从持久性存储中重新获取内容。不幸的是,监视后端并不是那么简单

这里有一些选项:如果您是在站点的角度组件中进行更改,那么您可以在创建新页面时调用函数,重新激发db访问代码并刷新模型


如果您在angular之外进行更改,那么您需要使用轮询定期刷新angular模型,或者选择更高级的web套接字选项,正如阅读此问题后所解释的那样,我猜您是从couchbase获得旧视图的

默认情况下,couchbase将
stale
参数设置为
update\u after
,这将导致仅在第二次访问后获取更新的视图,有关详细信息,请参阅

要解决此问题,应将
stale
设置为
false


如果您通过REST调用访问couchbase,将
?stale=false
添加到调用中应该可以达到目的,否则根据您使用的参数添加参数。

我尝试过这种方法,在我的createpage上保存数据后,我添加了以下代码:rootScope。$broadcast('event:list updated',true);location.path('/quizmaster/dashboard');当第二页控制器通知该广播事件时,它将调用用于显示数据的函数。rootScope.$on(“事件:列表已更新”,函数(值){console.log('event update');//调用gameList函数以显示列表gameList.async();});该事件在重定向到第二个控制器(即仪表板页面)时触发,但不会更新列表。gamelist.async函数是否调用数据库?我已为此创建了另一个页面,并提供了代码以供进一步理解。