在AngularsJs中将逻辑部分实现为Generic部分

时间:2016-05-25 04:45:08

标签: javascript angularjs

我最近开始研究ANGULARJS,我遇到了一个需要一些指导才能完成的案例。我在我的应用程序中实现了一个消息部分( ASP NET MVC - ANGULARJS )。目前我已经针对特定 ng-app 下的特定模块实现了消息部分。的纳克控制器即可。现在我需要在另一个模块中使用相同的功能。这就像在ng-controller下ng-app再次复制相同的代码一样,这不是一个好方法。我只想和我的 ANGULARJ S代码一样,即插即用。

我在特定的ng-app下使用了 2服务,1指令,并在特定控制器中使用了一些功能。我想要的只是让这些代码成为一个通用代码,并在任何ng-app和ng-controller下使用。

这可能吗?如果是这样我怎么能实现。

如果查询不清楚,请告诉我

2 个答案:

答案 0 :(得分:0)

您说您使用了2个服务,1个指令和控制器等来实现您的消息传递功能。如果要在各种应用程序中重复使用它,则需要将所有这些作为模块捆绑。例如:

angular.module('customMessaging', [])
  .controller('messagingCtrl', function(messenger, messageManager) {
    ....
  })
  .directive('messagingDir', function() {
    return {
      controller: 'messagingCtrl'
        ...
    }
  })
  .service('messenger', function() {
    ...
  })
  .service('messageManager', function() {
    ...
  })

现在您可以将此指定为任何角度应用程序的依赖项,如下所示,以便在应用程序的任何位置访问指令,服务和控制器:

angular.module('myfirstApp', ['customMessaging']);
angular.module('mySecondApp', ['customMessaging']);

答案 1 :(得分:0)

感谢您的建议。我已将与消息相关的函数(如服务,指令和控制器相关函数)移动到单独的JavaScript文件中。并调用了这个JavaScript文件,我需要与消息相关的功能。

让我们说JS为Message.JS。在Message.JS中,我使用了app变量(从JS Specific到页面全局的实例化应用程序)。

特定于该页面的JS

var app = angular.module('appname',[]);  
app.controller(...)

<强> Message.JS

我在我的message.JS中使用了相同的应用程序,因为消息控制器属于该应用程序。

app.service(...)

app.controller('messagecontroller',[]...)

当我需要在MessageController中调用一个函数时,我将使用角度来实现这个。有关更多信息http://www.dotnet-tricks.com/Tutorial/angularjs/HM0L291214-Understanding- $ emit, - $ broadcast-and- $ on-in-AngularJS.html

的问候,
Selvam.M