我有一个具有以下基本结构的应用
weatherDisplayController.js
weatherGrabbingService.js
userColorPreferencesService.js
当用户更改其用于查看天气的颜色首选项时,它将存储在userColorPreferencesService.js.
但是,我想添加另一个视图,您可以在其中查看所有朋友'仪表板,这意味着创建一个新的模块微实例。但是,当我这样做时,他们将覆盖服务中的颜色首选项。
如何在一个页面上拥有同一模块的多个实例?
答案 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)
唯一不同的数据应该是页面该部分的范围。您可以将数据存储在每个范围中,并将所需数据传递给服务,而不是将数据存储在服务中。