Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 2以角度输入指令_Angular - Fatal编程技术网

Angular 2以角度输入指令

Angular 2以角度输入指令,angular,Angular,我在angular 11中有一个指令,具有以下输入: @Directive({ selector: "[appHasToken]", }) export class HasTokenDirective implements OnInit, OnDestroy { @Input("appHasToken") fallback: TemplateRef<any>; @Input("showWarning") show

我在angular 11中有一个指令,具有以下输入:

@Directive({
  selector: "[appHasToken]",
})
export class HasTokenDirective implements OnInit, OnDestroy {
  @Input("appHasToken") fallback: TemplateRef<any>;
  @Input("showWarning") showWarning = false;
//...
}

@指令({
选择器:“[appHasToken]”,
})
导出类HasTokenDirective实现OnInit、OnDestroy{
@输入(“appHasToken”)回退:TemplateRef;
@输入(“showWarning”)showWarning=false;
//...
}
我在代码中这样调用它:

<ng-container *appHasToken="noToken">

现在在一个地方,我希望showWarning是真的,所以我做到了

<ng-container *appHasToken="noToken;" [showWarning]="true">

但我的灵感来自

无法绑定到“showWarning”,因为它不是“ng容器”的已知属性

现在,我知道我可以使用与指令不同的名称重命名输入,并且

<ng-container appHasToken [templateRef]="noToken" [showWarning]="true">


但是,如果保留我正在做的相同内容,有修复方法吗?

当您使用*(结构指令)编写指令时,angular会在元素周围添加一个ng模板,因此
会转换为:

<ng-template [appHasToken]="noToken">
  <ng-container></ng-container>
</ng-template>
如果这使您想起了
ngFor
它的原因是
ngFor
也使用了它!这是你的电话号码

下面是一个示例,请注意,您的输入应如下所示:

导出类HasTokenDirective实现OnInit、OnDestroy{ @输入(“appHasToken”)回退:TemplateRef; @输入(“appHasTokenShowWarning”)showWarning=false; //... }
不会在DOM中呈现。它主要用作*ngFor和*ngIf模板中的Javascript花括号。检查文档


相反,请使用普通div或任何其他组件。

您好,谢谢,我以前尝试过这样做:
*appHasToken=“noToken;showWarning:true”
但这会使整个内容无效>属性绑定appHasTokenShowWarning未被嵌入模板上的任何指令使用。请确保属性名称拼写正确,并且所有指令都列在“@NgModule.declarations”中。虽然
*appHasToken=“noToken”
单独起作用,我不知道为什么这个加法会破坏whjole的功能。而且你还更改了指令中的输入名称?输入名称就像主帖子一样。你必须更改第二个参数的输入,再次阅读我的答案,我将在几分钟内添加stackblitz
<ng-container *appHasToken="noToken; showWarning true">