我正在尝试使用Angular 5.2.9创建网站。我正在构建一个系统来登录,现在想要避免在未授权用户时将元素加载到页面中。
路由是一回事,我可以使用canActivate并将AuthGuard放在那里,但对于特定元素(如菜单项,页面元素),我想控制用户是否看到它们。所以,我以为我会创建一个结构指令。
我将示例代码从Angular Documentation直接复制到我的应用程序中。键入时我得到错误;
属性绑定appUnless没有被嵌入式上的任何指令使用 模板。确保属性名称拼写正确并且 所有指令都列在“@ NgModule.declarations”中。
我在app.module.ts中的声明中引用了该指令。我确定我错过了什么,但我不太清楚是什么。我在这里和其他地方都看了看。
答案 0 :(得分:1)
我从下面的angular documentation
复制并粘贴app.module.ts文件。
您忘了将declarations: [UnlessDirective]
添加到您的项目中。这就是你得到错误的原因。 UnlessDirective
应替换为您的指令名称。
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { heroSwitchComponents } from './hero-switch.components';
import { UnlessDirective } from './unless.directive';
@NgModule({
imports: [ BrowserModule, FormsModule ],
declarations: [
AppComponent,
heroSwitchComponents,
UnlessDirective
],
bootstrap: [ AppComponent ]
})
export class AppModule { }