AngularJs如何将不同服务的通用功能概括为单一服务

时间:2015-03-25 08:35:02

标签: javascript angularjs

我正在处理一个应用程序,每次单击选项卡时,该应用程序有大约20个选项卡(选项卡和子选项卡),请求将发送到服务器以获取数据。 (例如:“https://localhost:8443/app/tabname/:id”)

我必须为每个标签编写不同的服务,例如:

 Tab1 has tab1-service.js which makes a restangular call 
"Restangular.one("tab1",id).get("...");"

 tab2 i wrote tab2-service.js with similar functionality
"Restangular.one("tab2",id).get("...");"

是否可以有一个对象,我可以在其中传递tab的名称并在服务中检索它? (这会减少很多代码) 需要建议。

1 个答案:

答案 0 :(得分:0)

是的,你可以。您可以制作标签服务,并使用每个标签的参数调用它。

    app.factory("tabService", function(){
 return {
    getTab: getTab
 };

 function getTab(tabName, tabId)
 {
    return Restangular.one(tabName,tabId).get("...");
 }
});

并像这样使用

   app.controller("myController", ["tabService", function(tabService){

     var tab = tabService.getTab("tab1", 1);
}]);

希望这有帮助。