当前位置: 首页 > 知识库问答 >
问题:

在Angular中全局注册指令

司寇祖鹤
2023-03-14
angular.module('whatever.module', []).directive('href', function() {
    return {
        restrict: 'A',
        link: function($scope, $element, $attrs) {
            // do stuff
        }
    };
});
@Directive({
    selector: '[href]',
})

export class MyHrefDirective {
    constructor() {
        // whatever
    }
}

我尝试将它注入bootstrap函数,就像您应该对服务做的那样,以便在全局范围内拥有一个实例,但这并不奏效

共有1个答案

尉迟浩思
2023-03-14

我的理解是,您必须在组件级别选择所有自定义指令。只隐式地包含了PLATFORM_DIRECTIVES(ngFor、ngIf等)。

但是,您可以将自己的自定义指令注册为PLATFORM_DIRECTIVE

import { provide, PLATFORM_DIRECTIVES } from '@angular/core';

bootstrap(RootCmp, [
  provide(PLATFORM_DIRECTIVES, {useValue: YourCustomDirective, multi: true}),
]);

下面有一篇文章详细介绍了这个过程:http://blog.thoughtram.io/angular2/2015/11/23/multi-providers-in-angular-2.html

 类似资料:
  • 注意: 自 PHP 5.4.0 开始,register_globals 选项已经被移除并不再使用。这是在提醒你如果你正在升级旧的应用程序的话,你需要注意这一点。 当 register_globals 选项被开启时,它会使许多类型的变量(包括 $_POST, $_GET 和 $_REQUEST)被注册为全局变量。这将很容易使你的程序无法有效地判断数据的来源并导致安全问题。 例如:$_GET['foo

  • EasySwoole有四个全局事件,全部位于框架安装后生成的EasySwooleEvent.php中。 frameInitialize 框架初始化事件 mainServerCreate 主服务创建事件 onRequest Http请求事件 afterAction Http响应后事件 frameInitialize mainServerCreate onRequest afterAction

  • 本文向大家介绍使用use注册Vue全局组件和全局指令的方法,包括了使用use注册Vue全局组件和全局指令的方法的使用技巧和注意事项,需要的朋友参考一下 Vue中的组件和指令分为局部组件、局部指令和全局组件、全局指令。对于注册有一定数量的全局指令和全局组件时,官方文档中的方法就显得有些不够清爽了。 全局组件 在Vue官方文档中介绍的是使用Vue.component(tagName, options)

  • 1.1.1. 全局变量注册 如果您还能记起早期WEB应用开发中使用C开发CGI程序的话,一定会对繁琐的表单处理深有体会。当PHP的register_globals配置选项打开时,复杂的原始表单处理不复存在,公用变量会自动建立。它让PHP编程变得容易和方便,但同时也带来了安全隐患。 事实上,register_globals是无辜的,它并不会产生漏洞,同时还要开发者犯错才行。可是,有两个主要原因导致了

  • 请求方法结束后执行 假如你使用了单例模式,需要清理请求时的GET POST 等全局变量或本次请求的日志运行记录,就可以在此方法内执行。 protected function afterAction( $actionName ) : void 示例 想一下,我如果想知道那些请求的执行时间长短,或者记录一些所谓的 慢请求, 那幺我们可以通过两个事件 onRequest 和当前这个 afterActio

  • 收到请求事件 protected function onRequest($actionName): ?bool 当EasySwoole收到任何的HTTP请求时,均会执行该事件。该事件可以对HTTP请求全局拦截。 $sec = new Security(); if($sec->check($request->getRequestParam())){ $response->write("do n