我已经尝试了一个简单的结构指令,有角度的6,你可以。我创建了一个项目,然后生成了一个新的指令。该指令被添加到@NgModule的解密部分。将指令添加到app.component.html中,但我一直
不能绑定到'appHasPermission‘,因为它不是'div’的已知属性。("> > ]*appHasPermission="good">“
app.component.html
<div *appHasPermission="good">
<h1>Hello</h1>
</div>
指令
import {Directive, Input, TemplateRef, ViewContainerRef} from '@angular/core';
@Directive({
selector: '[appHasPermission]'
})
export class HasPermissionDirective {
@Input() set permissionName(name: any) {
this.viewContainerRef.createEmbeddedView(this.templateRef);
}
constructor(private templateRef: TemplateRef<any>, private viewContainerRef: ViewContainerRef) { }
}
和模块
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { HasPermissionDirective } from './has-permission.directive';
@NgModule({
declarations: [
AppComponent,
HasPermissionDirective
],
imports: [
BrowserModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
我看过教程和视频,它们正是我所做的。一定是很明显的事。有什么想法吗?
发布于 2018-08-27 04:52:54
有几种方法可以用来解决您的问题:
1)更改@Input
名称:
@Input() set appHasPermission(name: any) {
...
}
2)定义@Input
别名:
@Input('appHasPermission') set permissionName(name: any) {
...
}
https://stackoverflow.com/questions/52031586
复制相似问题