角结构指令破碎

时间:2018-04-07 23:07:43

标签: angular angular-directive

我正在尝试使用Angular 5.2.9创建网站。我正在构建一个系统来登录,现在想要避免在未授权用户时将元素加载到页面中。

路由是一回事,我可以使用canActivate并将AuthGuard放在那里,但对于特定元素(如菜单项,页面元素),我想控制用户是否看到它们。所以,我以为我会创建一个结构指令。

我将示例代码从Angular Documentation直接复制到我的应用程序中。键入时我得到错误;

  

属性绑定appUnless没有被嵌入式上的任何指令使用   模板。确保属性名称拼写正确并且   所有指令都列在“@ NgModule.declarations”中。

我在app.module.ts中的声明中引用了该指令。我确定我错过了什么,但我不太清楚是什么。我在这里和其他地方都看了看。

1 个答案:

答案 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 { }