如何创建角度模块的多个实例

时间:2014-04-10 18:19:05

标签: javascript angularjs angularjs-module

我有一个具有以下基本结构的应用

weatherDisplayController.js
  weatherGrabbingService.js
  userColorPreferencesService.js

当用户更改其用于查看天气的颜色首选项时,它将存储在userColorPreferencesService.js.

但是,我想添加另一个视图,您可以在其中查看所有朋友'仪表板,这意味着创建一个新的模块微实例。但是,当我这样做时,他们将覆盖服务中的颜色首选项。

如何在一个页面上拥有同一模块的多个实例?

2 个答案:

答案 0 :(得分:0)

那是因为服务是单身人士。现有的只有一个实例。

也许将colorervice中的构造函数作为oop类,并将其中的多个存储在服务本身中。

function ColorPreferences(){
  //any data
} 

app.service("userColorPreferencesService", function(){
  this.ownColors = new ColorPreferences({ /* data goes here */});
  this.buddyColors = [];
});

//in your controller, when sharing actived
userColorPreferencesService.buddyColor = new ColorPreferences({ /* data from ajax? */});

答案 1 :(得分:0)

唯一不同的数据应该是页面该部分的范围。您可以将数据存储在每个范围中,并将所需数据传递给服务,而不是将数据存储在服务中。