2016年9月5日 星期一

angular access the singleton factory instance from non-angular code

如果要從跟 angular 無關的 javascript 裡取得 angular 的元件例如 factory, service
可以用 injector 取得

網路上有不同方法可以取得 injector
例如
1.
angular.injector(['my_module']).get('my_factory');
2.
angular.element(document.htmlElement).injector().get('my_factory');

雖然網路上都說 factory, service 在 angular 都是 singleton

第一種方法會拿到一個新的 factory instance
所以 factory 中的變數都是初始值

第二種方法就是真的拿到存在 angular 中的 singleton factory instance
也可以存取 factory 中經過修改後的變數值