AngularJs - 当此页面上的数据发生更改时更新另一页

时间:2015-11-16 02:56:00

标签: javascript angularjs

我有2页,由同一个ng-app中的2个不同的控制器控制。

我们说他们是:

app.com/budget/ - BudgetController
app.com/expense/ - ExpenseController

预算页面供用户编辑预算值,该预算值将进入费用页面数据。同样在费用页面上,还会有一些计算将数据保存到数据库中。

通常,用户在预算页面中更改预算数据,然后刷新/访问该页面的费用页面,将一些新数据保存到数据库中。

现在我希望在1页/控制器中更改数据时自动发生此过程将触发其他页面/控制器更新。我正在考虑使用ShareServices,但除了对DB的同一部分的一些查询之外,这两个控制器没有多少共同之处。

有没有更好的方法呢?

1 个答案:

答案 0 :(得分:0)

您可以使用serviceProvider来帮助您封装多个控制器共享的数据。

所以在预算页面中,您会像

一样

var myData = dataProvider.getData(); 做你的数据操作。 在切换控制器之前:dataProvider.saveData(myData)

在费用控制器中, var myData = dataProvider.getData();

这就是单页面应用程序。

如果您使用多页面方法,那么您的dataProvider需要与您的保护程序通信以获取和保存数据。

我理解页面没有太多共同之处,但他们需要的数据很常见;因此,获取数据的共享服务最有效。从长远来看,共享服务中的代码是可重用的,并且可以帮助维护。