Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了angularjs – 从另一个模块获取一个对象(控制器,服务或指令的功能)大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以访问位于同一模块或不同模块中的功能

就像是:

var fooDir = angular.module("directives").get("foo")

… 要么:

var myCtrl = angular.module("app").controllers["myCtrl"]

我想服务我们可以使用注射器:

inj = angular.injector(['myservicesModule'])
$myservice = inj.get('$myservice')

…但是它适用于控制器和指令吗?

获得注射器

模块注入器

例如,假设您有自己的模块测试,要获取空的注入器而不连接到DOM应用程序实例:

angular.injector(['ng','test']);

来自现有应用程序的注射器

例如,要使应用程序的注入器管理具有id测试的选定节点:

angular.element(document.getElementById('test')).injector();

从进样器获取实例

假设您将进样器作为进样器变量

获取服务实例

获取$rootScope实例:

injector.get('$rootScope');

获取控制器实例

假设你得到一个名为TESTCtrl的控制器:

injector.get('$controller')('TESTCtrl',{ $scope: {} });

获取编译指令的元素

假设您有一个指令测试,以获取针对$rootScope的编译元素:

injector.get('$compile')('<div a/>')(injector.get('$rootScope'));

来自角度jqLit​​e或jQuery的助手

除了获取jqLit​​e或jQuery集合的注入器之外,您可以假设一个jqLit​​e或jQuery集合包装一个存在于您的应用程序中的附加DOM元素,作为变量$element:

获取附加到DOM元素的控制器实例

$element.controller();

获取附加到DOM元素的范围实例

$element.scope();

获取附加到DOM元素的隔离范围实例

$element.isolateScope();

获取角度附加到DOM元素的隐藏数据

$element.inheritedData();

注册服务,控制器等清单

没有公开的注册服务,控制器等列表.但是,您可以覆盖提供者方法,例如,获取模块“ng”之上的注册

angular.module('ng').config(
    function ($provide,$compileProvider,$controllerProvider) {

        angular.forEach(['service','provider','controller'],function (m) {
            var _m = $provide[m];
            $provide[m] = function () {
                console.log('$provide',m,arguments);
                return _m.apply($provide,arguments);
            };
        });

        angular.forEach(['directive'],function (m) {
            var _m = $compileProvider[m];
            $compileProvider[m] = function () {
                console.log('$compileProvider',arguments);
                return _m.apply($compileProvider,arguments);
            };
        });

        angular.forEach(['register'],function (m) {
            var _m = $controllerProvider[m];
            $controllerProvider[m] = function () {
                console.log('$controllerProvider',arguments);
                return _m.apply($controllerProvider,arguments);
            };
        });

    });

这样您就可以获得自己的列表.但它被称为覆盖框架,你不应该这样做.

大佬总结

以上是大佬教程为你收集整理的angularjs – 从另一个模块获取一个对象(控制器,服务或指令的功能)全部内容,希望文章能够帮你解决angularjs – 从另一个模块获取一个对象(控制器,服务或指令的功能)所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。