2016-10-03 6 views
1

Also ich bin offensichtlich neu zu ng2, wie viele Menschen derzeit sind. Mit der Veröffentlichung der ersten Version habe ich ein wenig gelernt. Ich fange an, einige der "ng2" Denkweisen zu bekommen.Angular 2 - ngIf - Keine bekannte Eigenschaft von div

Aber etwas so einfaches wie ngIf kann ich nicht zur Arbeit kommen.

Das ist meine Ansicht:

<div *ngIf="testVariable" class="checkbox"> 
    <label> 
     <input type="checkbox" formControlName="rememberMe" value="remember-me"> Remember me 
    </label> 
</div> 

In meinem component.ts:

import { Component, OnInit } from '@angular/core'; 
import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms'; 

... 

ngOnInit() { 
    this.loginForm = this._fb.group({ 
    username: ['', [<any>Validators.required]], 
    password: ['', [<any>Validators.required]], 
    rememberMe: [] 
    }); 

    this.testVariable = false; 
} 

Muss ich etwas extra importieren? Ich habe Pre-Release-NG2 Beispiele gesehen CORE_COMPONENTS importieren, aber ich kann nicht in ein aktuelles Beispiel mit dem finden

Meine Modul Erklärung:.

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 

import { LoginComponent } from './login.component'; 

@NgModule({ 
    imports: [ ReactiveFormsModule, CommonModule ], 
    exports: [ LoginComponent ], 
    declarations: [ LoginComponent ], 
    providers: [ ], 
}) 
export class LoginModule { } 
+0

Sie sollten Ihre Moduldeklaration einbeziehen, da wahrscheinlich ein Modulimport fehlt. –

+0

Für Sie hinzugefügt: D – Aleski

Antwort

4

Sie haben importsCommonModule in Ihrer Anwendung @NgModule ‚s hinzufügen Erklärung wie folgt:

@NgModule({ 
    imports  : [ 
    CommonModule 
    ] 
}) 
export default class AppModule {} 
+1

Das 'CommonModule' wird bereits vom' BrowserModule' exportiert, das Sie in das 'AppModule' importieren. Das OP verwendet die Komponente wahrscheinlich in einem anderen Modul. In diesem Fall sollte das CommonModule in das Modul _that_ importiert werden, nicht das App-Modul. –

+0

@peeskillet Sie haben Recht. Wo wird es importiert? – Aleski

+1

@Aleski '@ angular/common' –

0

Sie müssen das BrowserModule zu Ihrer Moduldeklaration hinzufügen. Die Richtlinie NgIf sollte vor ihrer Verwendung importiert werden.

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule, ReactiveFormsModule } from '@angular/forms'; 

import { LoginComponent } from './login.component'; 

@NgModule({ 
    imports: [ ReactiveFormsModule, BrowserModule ], 
    exports: [ LoginComponent ], 
    declarations: [ LoginComponent ], 
    providers: [ ], 
}) 
export class LoginModule { } 
+0

Ist das nicht die selbe Lösung wie 'import {CommonModule}'? BrowserModule enthält nur CommonModule und exportiert es erneut. - Und immer noch nicht funktioniert ... – Aleski

+1

Es ist die Deklaration aus dem generierten Modul von Angular CLI. Von dem, was ich verstehe, enthält es mehr als CommonModule (siehe https://github.com/angular/angular/blob/master/modules/%40angular/platform-browser/src/browser.ts) –

+0

Ja, tut es. Danke für die Hilfe. – Aleski

Verwandte Themen