2016-10-03 2 views
1

Так что я, очевидно, новичок в ng2, как и многие люди в настоящее время. С выпуском первой версии я немного учился. Я начинаю получать некоторые из более «ng2» способов мышления.Angular 2 - ngIf - Не известное свойство div

Однако, что-то простое, как ngIf Я не могу работать.

Это мое мнение:

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

В моем 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; 
} 

ли я импортировать что-то дополнительно? Я видел пре-релиз примеры NG2 импортирующие CORE_COMPONENTS но я не могу найти недавний пример с этим в

Моя декларация модуля:.

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

Вы должны включить объявление модуля, так как это, вероятно, недостаток модуля, который отсутствует. –

+0

Добавлено для вас: D – Aleski

ответ

4

Вы должны добавить CommonModule в @NgModule вашего приложения «s imports как указано ниже:

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

'CommonModule' уже экспортируется с помощью' BrowserModule', который вы импортируете в 'AppModule'. Возможно, OP использует компонент в другом модуле. В этом случае «CommonModule» должен быть импортирован в модуль _that_, а не в модуль приложения. –

+0

@peeskillet Вы правы. Откуда он импортируется? – Aleski

+1

@Aleski '@ angular/common' –

0

Вы должны добавить модуль BrowserModule в свою декларацию модуля. Директива NgIf должна быть импортирована до ее использования.

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

Разве это не такое же решение, как 'import {CommonModule}'? BrowserModule имеет только CommonModule и реэкспортирует его. - И все еще не работает ... – Aleski

+1

Это объявление из сгенерированного модуля с помощью Angular CLI. Из того, что я понимаю, он содержит больше, чем CommonModule (см. Https://github.com/angular/angular/blob/master/modules/%40angular/platform-browser/src/browser.ts) –

+0

Да, это так. Спасибо за помощь. – Aleski

Смежные вопросы