typescript Angular2 - 无法绑定到“ngSwitchCase”,因为它不是已知的本机属性

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/38677753/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-10-21 03:42:19  来源:igfitidea点击:

Angular2 - Can't bind to 'ngSwitchCase' since it isn't a known native property

angulartypescript

提问by Joe

I have two lists that I'm presenting in my .htmlfile. I'm trying to make my code not repetitive so I decided to use ngSwitch, but I get an error while I do the next thing:

我在我的.html文件中有两个列表。我试图让我的代码不重复,所以我决定使用ngSwitch,但是在我做下一件事时出现错误:

<div [ngSwitch]="currentListView">
    <div *ngSwitchCase="'People'">
      <div dnd-sortable-container [dropZones]="['zone-one']" [sortableData]="listOfPeople">
        <div class="list-bg" *ngFor="#person of listOfPeople; #i = index" dnd-sortable [sortableIndex]="i">
          ID: {{bulk.person}} <p></p> Name: {{person.name}}
        </div>
      </div>
    </div>
    <div *ngSwitchCase="'Cars'">
      <div dnd-sortable-container [dropZones]="['zone-one']" [sortableData]="listOfCars">
        <div class="list-bg" *ngFor="#car of listOfCars; #i = index" dnd-sortable [sortableIndex]="i">
          ID: {{car.id}} <p></p> Color: {{car.color}}
        </div>
      </div>
    </div>

THIS IS THE ERROR IM GETTING FOR ECH LIST:

这是我获取 ECH 列表的错误:

(in promise): Template parse errors: Can't bind to 'ngSwitchCase' since it isn't a known native property ("

<div [ngSwitch]="currentListView">
    <div [ERROR ->]*ngSwitchCase="'People'">
      <div dnd-sortable-container [dropZones]="['zone-one']" [sortableData"): AppCmp@42:9
Property binding ngSwitchCase not used by any directive on an embedded template ("

  <div [ngSwitch]="currentListView">
    [ERROR ->]<div *ngSwitchCase="'People'">
      <div dnd-sortable-container [dropZones]="['zone-one']" [sortabl"): AppCmp@42:4
Can't bind to 'ngSwitchCase' since it isn't a known native property ("
      </div>
    </div>

(承诺):模板解析错误:无法绑定到“ngSwitchCase”,因为它不是已知的本机属性(“

<div [ngSwitch]="currentListView">
    <div [ERROR ->]*ngSwitchCase="'People'">
      <div dnd-sortable-container [dropZones]="['zone-one']" [sortableData"): AppCmp@42:9
Property binding ngSwitchCase not used by any directive on an embedded template ("

  <div [ngSwitch]="currentListView">
    [ERROR ->]<div *ngSwitchCase="'People'">
      <div dnd-sortable-container [dropZones]="['zone-one']" [sortabl"): AppCmp@42:4
Can't bind to 'ngSwitchCase' since it isn't a known native property ("
      </div>
    </div>

what is wrong here? and can I make it even more efficient?

这里有什么问题?我可以让它更有效率吗?

thanks

谢谢

回答by caballerog

If you use commons elements (ngSwitch, ngIf, ngFor, ...) of Angular2 you must import CommonModulein your app.

如果您使用 Angular2 的公共元素(ngSwitch、ngIf、ngFor、...),则必须CommonModule在您的应用程序中导入。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ApplicationRef } from '@angular/core';
import { CommonModule } from '@angular/common';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    CommonModule
  ],
  providers: [],
  entryComponents: [AppComponent],
  bootstrap: [AppComponent]
})
export class AppModule {

}

回答by etrupja

From the error it is clear that the way you are using 'ngSwitchCase'is wrong. This can be understand from this part of error:

从错误中可以明显看出您使用的方式 'ngSwitchCase'是错误的。从这部分错误可以理解:

'ngSwitchCase' since it isn't a known native property

'ngSwitchCase' 因为它不是已知的本机属性

So, i would suggest that you remove the ' 'from the property you are checking and you leave it only with " ". Below code should fix your issue:

所以,我建议你' '从你正在检查的财产中删除,只留下" ". 下面的代码应该可以解决您的问题:

<div [ngSwitch]="currentListView">
    <div *ngSwitchCase="People">
      <!-- Code Here -->
    </div>
    <div *ngSwitchCase="Cars">
      <!-- Code Here -->
    </div>
</div>

This linkcould be helpful, too.

此链接也可能有所帮助。