GVKun编程网logo

angular – 模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性

14

在这篇文章中,我们将为您详细介绍angular–模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性的内容。此外,我们还会涉及一些关于Angular10-无法绑定到“formG

在这篇文章中,我们将为您详细介绍angular – 模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性的内容。此外,我们还会涉及一些关于Angular 10-无法绑定到“ formGroup”,因为它不是“ form”的已知属性、Angular 11 - 无法绑定到“ngForOf”,因为它不是“li”的已知属性、Angular 2 RC5:无法绑定到’ngFor’,因为它不是已知的属性、Angular 2 – 无法绑定到’controlGroup’,因为它不是’div’元素的know属性的知识,以帮助您更全面地了解这个主题。

本文目录一览:

angular – 模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性

angular – 模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性

我正在创建一个组件然后它被设置为root组件然后我收到错误模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性.我已经使用RouterLink作为组件anotation中的指令但它无法工作.

app.routes.ts

import { ModuleWithProviders }  from '@angular/core';
import { Routes,RouterModule } from '@angular/router';
import { dogRoutes }    from './Dogs/dog.routes';
import { catRoutes }    from './Cats/cat.routes';
import {userRoutes} from "./Users/user.routes";
// Route Configuration
export const routes: Routes = [
  {
    path: '',redirectTo: '/dogs',pathMatch: 'full'
  },...catRoutes,...dogRoutes,...userRoutes
];

export const routing: ModuleWithProviders = RouterModule.forRoot(routes);

app.component.ts

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',template: `
  <div>
  <header>
    <divhttps://www.jb51.cc/tag/headerrow/" target="_blank">header-row">
      <!-- Title -->
      <span>Scotch Pets</span>
      <!-- Add spacer,to align navigation to the right -->
      <div></div>
      <!-- Navigation with router directives-->
      <nav>
        <a[routerLink]="['/']">Home</a>
        <a[routerLink]="['/cats']">Cats</a>
        <a[routerLink]="['/dogs']">Dogs</a>
        <a[routerLink]="['/login']">Login</a>
      </nav>
    </div>
  </header>
  <main>
    <h1>We care about pets...</h1>
  </main>
</div>
<!-- Router Outlet -->
<div>
  <router-outlet></router-outlet>
    </div>
  `,})

export class AppComponent{}

app.module.ts

import { NgModule }       from '@angular/core';
import { browserModule }  from '@angular/platform-browser';
import { FormsModule }    from '@angular/forms';
import { HttpModule,JsonpModule } from '@angular/http';

import { AppComponent }         from './app.component';
import { DogsModule } from './Dogs/dogs.module';
import { CatsModule } from './Cats/cats.module';
import { UserModule }          from './Users/users.module';
import {routing} from './app.routes';
import {RouterModule} from "@angular/router";


@NgModule({
  imports: [
    browserModule,FormsModule,HttpModule,RouterModule,JsonpModule,UserModule,DogsModule,CatsModule,routing
 ],declarations: [
  AppComponent,],providers: [   ],bootstrap: [ AppComponent ]
})

export class AppModule {}

狗list.component.ts

import {Component,OnInit} from '@angular/core';
import {PetService} from '../services/pet.service'
import {Observable} from 'rxjs/Observable';
import {Pet} from '../model/pet';
import {AuthenticationService} from "../../Users/services/authentication.service";


@Component({

  template: `
    <h2>Dogs</h2>
    <p>List of dogs</p>
    <ul>
      <li*ngFor="let dog of dogs | async">
        <span>
            <i>pets</i>
            <a [routerLink]="['/dogs',dog.id.$t]">{{dog.name.$t}}</a>
        </span>
      </li>
    </ul>
    `
})
// Component class implementing OnInit
export class DogListComponent implements OnInit {
  // Private property for binding
  dogs: Observable<Pet[]>;

  constructor(private petService: PetService,private _service: AuthenticationService) {

  }

  // Load data ones componet is ready
  ngOnInit() {
    this._service.checkCredentials();
    // Pass retreived pets to the property
    this.dogs = this.petService.findPets('dog');
    alert(JSON.stringify(this.dogs))
  }
}

有没有更好的方法来添加修复此错误?

解决方法

您需要将RouterModule添加到导入:[]每个使用路由器指令的模块,如RouterOutlet或routerLink-

Angular 10-无法绑定到“ formGroup”,因为它不是“ form”的已知属性

Angular 10-无法绑定到“ formGroup”,因为它不是“ form”的已知属性

问题是您尚未在LoginComponent中声明app.module.ts

只需在LoginComponent中声明declarations

  declarations: [
    AppComponent,LoginComponent==> Add this!
  ]
,

在您的login.component.ts中没有组件选择器,应该像这样:

@Component({
  selector: 'app-login',templateUrl: './login.component.html',styleUrls: ['./login.component.css']
 })

另外在app.module.ts中,将LoginComponent放在declarations中。您将其放在imports中,这是不正确的。

,

问题似乎来自LoginComponent。 我们可以看到您的LoginComponent的模块/组件吗? 我怀疑您忘记在其中实现FormsModuleCommonModule

它也可能来自您制作LoginComponent的方式。 创建一个login.module.ts,在声明中添加LoginComponent并导出。

,

以防万一有人遇到我遇到的同样问题——那就是,我已经根据 Angular 风格指南在核心模块 (core.module.ts) 中创建了登录组件,但我忘记了(或 Angular- CLI 忽略)将其包含在 apps.module.ts 中。

这是该问题的众多症状之一,另一个是:无法绑定“ngModel”,因为它不是“div”的已知属性。

一旦我将核心模块放入应用模块中,问题就消失了。有助于解决的问题还在于问题是通过 IVY(编译器)还是通过 VSCode(TypeScript)抛出的。对我来说,我可以通过 StackOverflow 解决很多 TypeScript 问题,但是在 IVY 中编译失败。

Angular 11 - 无法绑定到“ngForOf”,因为它不是“li”的已知属性

Angular 11 - 无法绑定到“ngForOf”,因为它不是“li”的已知属性

如何解决Angular 11 - 无法绑定到“ngForOf”,因为它不是“li”的已知属性?

我有一个 angular 11 应用,在默认应用模块内有一个名为 admin-layout 的模块。

这是我的app.module.ts

import { browserAnimationsModule } from "@angular/platform-browser/animations";
import { NgModule } from ''@angular/core'';
import { browserModule } from ''@angular/platform-browser'';
import { HttpClientModule } from ''@angular/common/http'';
import { RouterModule } from ''@angular/router'';
import { ToastrModule } from "ngx-toastr";

import { SidebarModule } from ''./sidebar/sidebar.module'';
import { FooterModule } from ''./shared/footer/footer.module'';
import { NavbarModule} from ''./shared/navbar/navbar.module'';

import { AppComponent } from ''./app.component'';
import { AppRoutes } from ''./app.routing'';

import { AdminLayoutComponent } from ''./layouts/admin-layout/admin-layout.component'';


@NgModule({
  declarations: [
    AppComponent,AdminLayoutComponent
  ],imports: [
    browserAnimationsModule,RouterModule.forRoot(AppRoutes,{
      useHash: true
    }),SidebarModule,NavbarModule,ToastrModule.forRoot(),FooterModule,browserModule,HttpClientModule,],providers: [],bootstrap: [AppComponent]
})
export class AppModule { }

app/layouts/admin-layouts 中,我将 admin-layout.module.ts 设为:

import { NgModule } from ''@angular/core'';
import { RouterModule } from ''@angular/router'';
import { CommonModule } from ''@angular/common'';
import { FormsModule } from ''@angular/forms'';

import { AdminLayoutRoutes } from ''./admin-layout.routing'';

import { DashboardComponent } from ''../../pages/dashboard/dashboard.component''

import { NgbModule } from ''@ng-bootstrap/ng-bootstrap'';

import { HttpClientModule } from ''@angular/common/http'';
import { AngularsvgIconModule } from ''angular-svg-icon'';

@NgModule({
  imports: [
    CommonModule,RouterModule.forChild(AdminLayoutRoutes),FormsModule,NgbModule,AngularsvgIconModule.forRoot(),declarations: [
    DashboardComponent,]
})

export class AdminLayoutModule {}

现在在组件 app/pages/dashboard/dashboard-components.ts 中,我有:

import { Component,OnInit,Input } from ''@angular/core'';
import { HttpClient,HttpHeaders } from ''@angular/common/http'';
import { environment } from ''./../../../environments/environment'';
import Chart from ''chart.js'';

import { NgbActiveModal,NgbModal } from ''@ng-bootstrap/ng-bootstrap'';

@Component({
  selector: ''ngbd-modal-content'',template: `
    <div>
      <h4>Details</h4>
      <button type="button"aria-label="Close" (click)="activeModal.dismiss(''Cross click'')">
        <span aria-hidden="true">&times;</span>
      </button>
    </div>
    <div>
      <div>
        <div>
          <div>
            <div>
              <li *ngFor="let item of data; let i = index">
                {{i}} {{item}}
              </li>
            </div>
          </div>
        </div>
      </div>
    </div>
  `
})
export class NgbdModalContent {
  @input() data: [];

  constructor(public activeModal: NgbActiveModal) {}
}

@Component({
    selector: ''dashboard-cmp'',moduleId: module.id,templateUrl: ''dashboard.component.html''
})

export class DashboardComponent implements OnInit{

  public data = [];

  httpOptions = { headers: new HttpHeaders({ ''Content-Type'': ''application/json'' }) };

  constructor(private modalService: NgbModal,private http: HttpClient) {}

    ngOnInit(){
      const modalRef = this.modalService.open(NgbdModalContent,{ size: ''xl'' });
      this.http.get<any>(environment.api_url + ''stats'').subscribe(data => {
        for(var i = 1; i <= Object.keys(data["pole"]).length; i++){
            data.push(data["data"][i]);
        }
        console.log(data);
        modalRef.componentInstance.data = data;
      })
    }
}

我收到以下错误 - Can''t bind to ''ngForOf'' since it isn''t a kNown property of ''li''

console.log(data) 产生我 (2) [3.81,1.44]

我在这里做错了什么?与其他 stackoverflow 答案一样,他们需要我在模块中导入 CommonsModule。我在应用程序级别和模块级别都有它。尝试从另一个删除也不起作用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

Angular 2 RC5:无法绑定到’ngFor’,因为它不是已知的属性

Angular 2 RC5:无法绑定到’ngFor’,因为它不是已知的属性

升级到RC5后,我突然遇到这个错误:
Can't bind to 'ngFor' since it isn't a kNown property of 'div'. ("

<div [ERROR ->]*ngFor="t of test">{{t}}</div>")

HTML:

<div *ngFor="t of test">asdas</div>

本主题的所有帖子都说明您需要导入browserModule,但我已经这样做了.

把头撞到墙上之后,我找到了解决办法:
我忘记了变量前面的“let”这个词!

预备RC5用于工作,所以这是RC5的一个突破性变化.我知道让我们需要,但以前这只是有效的.而错误根本没有用.

希望这可以帮助!

Angular 2 – 无法绑定到’controlGroup’,因为它不是’div’元素的know属性

Angular 2 – 无法绑定到’controlGroup’,因为它不是’div’元素的know属性

我正在尝试使用Angular2.0.0-alpha.28(带有相应的.d.ts)TypeScript 1.5.0-beta构建一个小应用程序,我收到以下消息:

Can’t bind to ‘controlGroup’ since it isn’t a kNow property of the
‘div’ element and there are no matching directives with a
corresponding property

的index.html

<!DOCTYPE html>
<html>
<head lang="en">
<Meta charset="UTF-8">
<title>Angular 2</title>

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Open+Sans:400,600" />

<script src="https://github.jspm.io/jmcriffey/bower-traceur-runtime@0.0.87/traceur-runtime.js"></script>
<script src="https://jspm.io/system@0.16.js"></script>
<script src="https://code.angularjs.org/2.0.0-alpha.28/angular2.dev.js">    </script>
</head>
<body>

<radar>Loading...</radar>
<script>System.import('radar-view');</script>

</body>
</html>

雷达view.ts

/// <reference path="typings/angular2/angular2.d.ts" />
import {Component,View,bootstrap} from 'angular2/angular2';
import {FormBuilder,Validators,formDirectives,ControlGroup} from 'angular2/angular2';

@Component({
selector: 'radar',appInjector: [FormBuilder]
})
@View({
template: '<div [control-group]="form"><input control="levels">    {{form.controls.levels.value}}</div>',directives: [formDirectives]
})
export class RadarView {
form: ControlGroup;
builder: FormBuilder;

constructor(builder: FormBuilder) {
    this.builder = builder;
    this.form = builder.group({
        levels: ["5"]
    });
}
}

bootstrap(RadarView);

编译

tsc --watch --target es5 --module commonjs --emitDecoratorMetadata

此外,当我尝试使用validators.required时,它看起来似乎也找不到:

this.form = builder.group({
    levels: ["5",Validators.required]
});

Error:(21,38) TS2339: Property ‘required’ does not exist on type
‘typeof Validators’.

我的代码出了什么问题?

解决方法

感谢schmck Validators.required实际上不是常规angular2.d.ts v.2.0.0-alpha.28的一部分.

对于此问题,解决方案是将以下内容添加到angular2.d.ts:

class Validators {
    static required: any;
}

同样来自Pawel Kozlowski(https://github.com/angular/angular/issues/2779),< div [control-group] =“form”>< input control =“levels”>必须被替换< div [ng-control-group] =“form”>< input ng-control =“levels”>.这仍然无法正常工作没有ControlContainer的提供者! ($__ 0 – > ControlContainer).

今天关于angular – 模板解析错误:无法绑定到’routerLink’,因为它不是’a’的已知属性的分享就到这里,希望大家有所收获,若想了解更多关于Angular 10-无法绑定到“ formGroup”,因为它不是“ form”的已知属性、Angular 11 - 无法绑定到“ngForOf”,因为它不是“li”的已知属性、Angular 2 RC5:无法绑定到’ngFor’,因为它不是已知的属性、Angular 2 – 无法绑定到’controlGroup’,因为它不是’div’元素的know属性等相关知识,可以在本站进行查询。

本文标签: