Service functions outside Angularjs scope

☆樱花仙子☆ 提交于 2019-12-08 17:36:42

问题


I have created a service in angularJS that uses btford.socket-io module to interact with the server. Since in the service I have implemented some API that I use inside angular at the moment, but for later extension of the application I also need to give access to these API outside angular scope. So that in future one could just call the function without having the need to create controller and other stuff.

At the moment I did this for a controller

var myController = angular.element($('body')).scope().myController;

by saving the whole controller inside a scope variable. I was wondering if it would be possible to do the same with a service.


回答1:


How about:

angular.element(document.body).injector().get('MyService');

Typically not good practice. But sometimes its needed.

Note: document.body is the element Your angular application is mounted to

Another thing you might consider is 'closing' external api with angular via a factory.

  • eg. return your global or namespaced class or api from an angular factory.

This is essentially what angular does for you. But instead of creating the reference inside angular first and having to extract it, you'd create it outside, and register it with DI as a factory or value.



来源:https://stackoverflow.com/questions/21312948/service-functions-outside-angularjs-scope

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!