相当于限制:Angular2中的AE

时间:2016-04-28 04:24:36

标签: javascript angularjs angularjs-directive angular

在Angular 1中,您可以使用restrict来确定如何使用您的指令。例如:

angular.module('foo').directive('fooDirective', [function () {
  return {
    restrict: 'AE',
    /* ... */
  }
}]);

然后您可以在模板中将其用作属性或元素:

<foo />

<div foo />

我已经在Angular2中的this one等网站上阅读select正确的方法来定义您的组件现在的使用方式:

@Component({
  selector: 'Sample'
});

然后在你的模板中:

<Sample />

同样,添加括号可以将其用作属性:

@Component({
  selector: '[Sample]'
});

模板:

<div Sample />

但是如果我想让它既可以作为属性又可以作为元素使用,在Angular 1中相当于restrict: 'AE'怎么办?

2 个答案:

答案 0 :(得分:3)

您可以使用

@Component({
  selector: 'sample,[Sample]'
});

另见https://github.com/angular/angular/blob/60727c4d2ba1e4b0b9455c767d0ef152bcedc7c2/modules/angular2/src/common/forms/directives/ng_form.ts#L81示例

  

@Directive({ selector: 'form:not([ngNoForm]):not([ngFormModel]),ngForm,[ngForm]',

答案 1 :(得分:0)

restrict: 'AE'AngularJS 2中仍然有效。你所指的是Angular 2 for TypeScript。我的问题中没有看到TypeScript标记。 Go to the link you have provided并注意在下拉列表中选择了Angular 2 for TypeScript

enter image description here