代码之家  ›  专栏  ›  技术社区  ›  AndreaNobili

“无法绑定到‘ngModel’,因为它不是‘p-calendar’的已知属性。”尝试使用素数组件的错误消息,为什么?

  •  10
  • AndreaNobili  · 技术社区  · 7 年前

    我是个新手 角度2\4 我试着按照这个快速视频教程添加 涂底漆

    https://www.youtube.com/watch?v=6Nvze0dhzkE

    开始 https://www.primefaces.org/primeng/#/setup

    app.component.html

    <!--The whole content below can be removed with the new code.-->
    <div style="text-align:center">
      <h1>
        Welcome to {{title}}!!
      </h1>
    </div>
    
    <p-calendar [(ngModel)]="value"></p-calendar>
    
    {{value | date:'dd.mm.yyy'}}
    

    <p-calendar [(ngModel)]="value"></p-calendar>
    

    (如本部分的官方文件所示: https://www.primefaces.org/primeng/#/calendar

    这里我有第一个问题,因为IntelliJ给了我这个错误消息:

    Error:(9, 13) Angular: Can't bind to 'ngModel' since it isn't a known property of 'p-calendar'.
    1. If 'p-calendar' is an Angular component and it has 'ngModel' input, then verify that it is part of this module.
    2. If 'p-calendar' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
    3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component.
    

    价值 我的模型变量。

    app.module.ts 以这种方式归档:

    import { BrowserModule } from '@angular/platform-browser';
    import { NgModule } from '@angular/core';
    
    import { AppComponent } from './app.component';
    import {CalendarModule} from 'primeng/primeng';
    
    
    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
        BrowserModule,
        CalendarModule
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }
    
    export class MyModel {
      value: Date;
    }
    

    如您所见,我已经导出了这个类:

    export class MyModel {
      value: Date;
    }
    

    价值 属性(具有类型

    <p-calendar[(ngModel)]=“value”></p-calendar>
    

    但它无法工作,当我在JavaScript浏览器控制台中访问此应用程序时,我会收到以下错误消息:

    compiler.es5.js:1690 Uncaught Error: Template parse errors:
    Can't bind to 'ngModel' since it isn't a known property of 'p-calendar'.
    1. If 'p-calendar' is an Angular component and it has 'ngModel' input, then verify that it is part of this module.
    2. If 'p-calendar' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message.
    3. To allow any property add 'NO_ERRORS_SCHEMA' to the '@NgModule.schemas' of this component. ("<p-calendar [ERROR ->][(ngModel)]="value"></p-calendar {{value | date:'dd.mm.yyy'}}
    "): ng:///AppModule/AppComponent.html@8:12
        at syntaxError (http://localhost:4200/vendor.bundle.js:7283:34)
        at TemplateParser.webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.TemplateParser.parse (http://localhost:4200/vendor.bundle.js:18403:19)
        at JitCompiler.webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler._compileTemplate (http://localhost:4200/vendor.bundle.js:32555:39)
        at http://localhost:4200/vendor.bundle.js:32475:62
        at Set.forEach (native)
        at JitCompiler.webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler._compileComponents (http://localhost:4200/vendor.bundle.js:32475:19)
        at http://localhost:4200/vendor.bundle.js:32362:19
        at Object.then (http://localhost:4200/vendor.bundle.js:7272:148)
        at JitCompiler.webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler._compileModuleAndComponents (http://localhost:4200/vendor.bundle.js:32361:26)
        at JitCompiler.webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler.compileModuleAsync (http://localhost:4200/vendor.bundle.js:32290:37)
    syntaxError @   compiler.es5.js:1690
    webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.TemplateParser.parse @   compiler.es5.js:12810
    webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler._compileTemplate @   compiler.es5.js:26962
    (anonymous) @   compiler.es5.js:26882
    webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler._compileComponents   @   compiler.es5.js:26882
    (anonymous) @   compiler.es5.js:26769
    then    @   compiler.es5.js:1679
    webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler._compileModuleAndComponents  @   compiler.es5.js:26768
    webpackJsonp../node_modules/@angular/compiler/@angular/compiler.es5.js.JitCompiler.compileModuleAsync   @   compiler.es5.js:26697
    webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.PlatformRef_._bootstrapModuleWithZone    @   core.es5.js:4536
    webpackJsonp../node_modules/@angular/core/@angular/core.es5.js.PlatformRef_.bootstrapModule @   core.es5.js:4522
    ./src/main.ts   @   main.ts:11
    __webpack_require__ @   bootstrap a55b161…:54
    2   @   main.ts:11
    __webpack_require__ @   bootstrap a55b161…:54
    webpackJsonpCallback    @   bootstrap a55b161…:25
    (anonymous)
    

    2 回复  |  直到 7 年前
        1
  •  32
  •   FAISAL    7 年前

    FormsModule 在你的 AppModule

    // ...
    import { FormsModule } from '@angular/forms';
    // ...
    
    @NgModule({
      // ...
      imports: [
        BrowserModule,
        FormsModule,
        CalendarModule
      ],
      // ...
    })
    export class AppModule { }
    
        2
  •  -1
  •   Kevin.Debeil    5 年前

    这不会解决您的问题,但我在尝试使用formControlName属性时遇到了相同的错误:

    <p-calendar [(ngModel)]="value" formControlName="debutaffichage"></p-calendar>