如何使用用户服务

时间:2016-04-04 13:01:16

标签: javascript angularjs

我使用angularjs 1.2.23并且我想创建一个提供程序,它将根据服务返回的某些结果加载状态。请考虑以下代码示例 -



app.provider("myStateProvider", function ($stateProvider, CustomService) {

   CustomService.getMenus({}, {}).$promise.then(function (menu) {
     $stateProvider.state(menu);
   });

});




它让我失误 - 未知提供者:CustomServiceProvider

任何建议......

1 个答案:

答案 0 :(得分:0)

当您向应用程序注入provider时,它将被称为应用程序的配置阶段。在此阶段,服务无法访问,因为尚未创建服务。 (参考https://docs.angularjs.org/guide/providers)。

当您注入servicefactorycontroller - 它已在运行块中注入时 - 您可以注入服务(例如作为CustomService),但不是提供者 - 您没有注入,所以没关系(参考https://docs.angularjs.org/guide/di)。

您可以为CustomService服务创建提供商:

app.provider("CustomService", function () {
     ... LOGIC GOES HERE (PUT GENERAL LOGIC RELATED TO THE SETUP PHASE OF THE SERVICE)
});

您以后可以将其注入myStateProvider

app.provider("myStateProvider", function ($stateProvider, CustomServiceProvider) { ...  });

最后一件事:不要将提供商添加到提供商名称,只需执行以下操作:

app.provider("myState", function ($stateProvider) {
});

为什么?因为如果你需要注入它,你需要注入myStateProviderProvider(Angular会自动添加" Provider"