加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 在angular2中全局注册一个指令

发布时间:2020-12-17 08:04:20 所属栏目:安全 来源:网络整理
导读:我正在开发一个Angular2应用程序。我需要为所有链接添加特殊行为,所以在角度1.x我会写一个这样的指令: angular.module('whatever.module',[]).directive('href',function() { return { restrict: 'A',link: function($scope,$element,$attrs) { // do stuf
我正在开发一个Angular2应用程序。我需要为所有链接添加特殊行为,所以在角度1.x我会写一个这样的指令:
angular.module('whatever.module',[]).directive('href',function() {
    return {
        restrict: 'A',link: function($scope,$element,$attrs) {
            // do stuff
        }
    };
});

在angular2我可以写一个这样的指令:

@Directive({
    selector: '[href]',})

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

但是我可以告诉应用程序如何在全球使用该指令?我有很多意见,链接到他们。我必须导入它并在每个组件(这是A LOT)中的指令数组中指定它吗?

我尝试将其注册到引导函数,就像您应该在服务中使用全局一个实例但不起作用

我的理解是,您必须在组件级别选择所有自定义指令。仅隐含地包含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

编辑:由于组件在模块级别被声明,所以我认为这更少了一个问题。这意味着很少的重复,因为您不再需要在单个组件级别声明子组件。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读