我对AngularJS应用有个主意,我很好奇AngularJS社区是否认为可以这样做。简而言之,我正在连接到数据API并将结果显示在页面上。

我创建了一个AngularJS服务,该服务在$rootScope.DataStore上创建了一个数据存储。我还有一个服务方法,可以使用从API端点返回的数据更新DataStore。如果我通过DataStore.update('products')从 Controller 内部请求“products” API端点,则将使用我的产品数据更新$rootScope.DataStore.products

现在,在 View /部分 View 中,我所需要做的就是说ng-repeat="product in DataStore.products"来显示我的数据,而无论我在哪个 Controller 范围内都无所谓。因此,从本质上讲,我的DataStore是我唯一的真理来源。

我从这种方法中获得的好处是易于遵循语义,并且 Controller 编码最少。因此,无论何时更新DataStore,绑定(bind)到DataStore的所有内容都会被更新。

这会给$rootScope摘要周期增加过多的负担吗,或者这只是一种奇怪的方式?还是这是一种很棒的方式? :)欢迎任何评论。

最佳答案

在这里引用的AngularJS FAQ中解决了这个问题:



似乎团队确实鼓励这种方式使用$rootScope,但要注意以下几点:



这不会给$digest周期带来太大的负担(该周期实现了基本的脏检查以测试数据突变),并且这并不是一种奇怪的处理方式。

编辑:有关性能的更多详细信息,请参见Misko(AngularJS开发人员)在SO上的以下答案:How does data binding work in AngularJS?特别注意性能部分。

关于javascript - AngularJS使用$ rootScope作为数据存储,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16739084/

10-11 05:16