gpt4 book ai didi

angularjs - 如何在两个有 Angular 的应用程序之间共享通用功能

转载 作者:行者123 更新时间:2023-12-01 09:57:13 24 4
gpt4 key购买 nike

在我的一个项目中,我有两个应用程序。让我们说 PurchaseApp 和 SalesApp。这两个应用程序使用名为 Resourcesvc.js 的共享服务(或工厂)。目前结构有两种应用程序在下面给出

PurchaseApp.js

var PurchaseApp= angular.module('PurchaseApp', []);
PurchaseApp.factory("Resourcesvc", ["$http", "$q", Resourcesvc]); // Registering Resource DI in app
PurchaseApp.controller("organizationCtrl", ["$scope", "organizationFactory",organizationCtrl]);

SalesApp.js

    var SalesApp= angular.module('SalesApp', []);
SalesApp.factory("Resourcesvc", ["$http", "$q", Resourcesvc]); / Registering Resource DI in app
SalesApp.controller("organizationCtrl", ["$scope", "organizationFactory",organizationCtrl]);

它现在工作正常。但是是否有更好的方法或实践可用于跨模块/Apps 共享公共(public)服务。 (真的,我混淆了 Angular 应用程序与模块)

最佳答案

如果你为每个应用制作一个模块,为你的共享服务制作一个模块,那么

var serviceModule= angular.module('ServiceModule', []);
serviceModule.factory("Resourcesvc", ["$http", "$q", Resourcesvc]);

var purchaseModule= angular.module('PurchaseModule', ['ServiceModule']);
purchaseModule.controller("organizationCtrl", ["$scope", "organizationFactory",organizationCtrl]);

var salesModule= angular.module('SalesModule', ['ServiceModule']);
salesModule.controller("organizationCtrl", ["$scope", "organizationFactory",organizationCtrl]);

现在您的服务仅在 ServiceModule 中声明一次,并且您还有另外两个“应用程序”(实际上是您在问题中确定的 modules ),每个声明一个对它的依赖。 Resourcesvc 现在可以注入(inject)到两个模块中的任何 Controller /服务中。

模块声明的 [] 部分用于声明对其他模块(您自己的和第三方模块)的依赖。

关于angularjs - 如何在两个有 Angular 的应用程序之间共享通用功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23645431/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com