首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角6结构指令

角6结构指令
EN

Stack Overflow用户
提问于 2018-08-27 01:34:17
回答 1查看 208关注 0票数 0

我已经尝试了一个简单的结构指令,有角度的6,你可以。我创建了一个项目,然后生成了一个新的指令。该指令被添加到@NgModule的解密部分。将指令添加到app.component.html中,但我一直

不能绑定到'appHasPermission‘,因为它不是'div’的已知属性。("> > ]*appHasPermission="good">“

app.component.html

代码语言:javascript
运行
复制
<div *appHasPermission="good">
  <h1>Hello</h1>
</div>

指令

代码语言:javascript
运行
复制
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) { }

}

和模块

代码语言:javascript
运行
复制
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 { }

我看过教程和视频,它们正是我所做的。一定是很明显的事。有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2018-08-27 04:52:54

有几种方法可以用来解决您的问题:

1)更改@Input名称:

代码语言:javascript
运行
复制
@Input() set appHasPermission(name: any) {
  ...
}

2)定义@Input别名:

代码语言:javascript
运行
复制
@Input('appHasPermission') set permissionName(name: any) {
  ...
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52031586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档