0

我可能需要调查为什么要在 Angular 和页面中的其他对象之间共享代码。很公平。但与此同时:

我有一些创建 ID 的代码。它在 Angular 服务中:

  angular.module("Gamma.services").service "idService", () -> 
    @newId = ->
      id = String.fromCharCode(Math.floor(Math.random() * 25) + 65) +
      ((@someNumber + Math.floor(Math.random() * 1e15) +
      new Date().getMilliseconds()).toString(36)).toUpperCase()

好的,这很漂亮,但我需要在我的应用程序中与一些非 Angular 代码共享这一小块代码。我有一个解决方案(将此代码移到窗口对象之外的函数中),但我认为更正确的解决方案可能是传递一个指向 Angular 服务的函数指针。

如何将 Angular 服务传递给非 Angular 代码?

4

1 回答 1

1

根据@jcollum 的评论/提示更新

angular.module('myApp', []).
factory('myService', [function() {
  return function() {
      alert('hello from the service')
  };
}]);

angular.element(document).ready(function(){
    angular.bootstrap(document, ['myApp']);
    var doc = angular.element(document),
        injector = doc.injector(),
        myService = injector.get('myService');
    myService(); // alerts
});
于 2013-07-01T19:42:44.013 回答