2017-04-20 42 views
5

Wciąż otrzymuję błądngIf jeszcze nie działa

nie może wiązać się z „ngIfElse”, ponieważ nie jest znana własność „ul”.

Jestem pewien, że popełniłem głupią pomyłkę, ale nie mogę jej znaleźć.

<ul *ngIf="!finished; else elseBlock" id='time'> 
    <li id='hour' class="chart" data-percent="100"><span>{{hour}} </span></li> 
    <li id='min' class="chart" data-percent="100"><span>{{minute}}</span></li> 
    <li id='second' class="chart" data-percent="100"><span>{{second}}</span></li> 
</ul> 
<ng-template #elseBlock> <h4 id='time'>DONE</h4> </ng-template> 

Odpowiedz

2

Dyrektywa ng-if obsługuje tylko przypadek pozytywny. Dla ujemnego etui (else) używać oddzielnego bloku:

<ul ng-if="!finished" id="time"> 
    <li id='hour' class="chart" data-percent="100"><span>{{hour}} </span></li> 
    <li id='min' class="chart" data-percent="100"><span>{{minute}}</span></li> 
    <li id='second' class="chart" data-percent="100"><span>{{second}}</span></li> 
</ul> 
<ng-if="finished"> 
    <h4 id='time'>DONE</h4> 
</ng-template> 
+0

, natomiast wersja kątowa 2 nie obsługuje ng-if-else, ale wersja kątowa 4 ma teraz tę funkcję. – Pengyy

+0

.... przepraszam ale co? dlaczego mój post został poddany pod głosowanie? –

+0

Sprzeciwiłem się stwierdzeniu. –

5

kątowa 2 nie obsługuje Esle, masz 2 opcje:

1: stosując pozytywny przypadek:

<ul *ngIf="!finished" id="time"> 
    <li id='hour' class="chart" data-percent="100"><span>{{hour}} </span></li> 
    <li id='min' class="chart" data-percent="100"><span>{{minute}}</span></li> 
    <li id='second' class="chart" data-percent="100"><span>{{second}}</span</li> 
</ul> 
<h4 id="time" *ngIf="finished"> <!-- this --> 
    DONE 
</h4> 

2 : zaktualizować swoją aplikację do Kątowymi 4:

Na Linux/Mac:

npm install @angular/{common,compiler,compiler-cli,core,forms,http,platform-browser,platform-browser-dynamic,platform-server,router,animations}@latest [email protected] --save 

W systemie Windows:

npm install @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] @angular/[email protected] [email protected] --save 

Jeśli opierać się na animacje, zaimportować nową BrowserAnimationsModule z @ kątowych/platformy/przeglądarki animacji w swojej NgModule korzeniowego. Bez tego, Twój kod zostanie skompilowany i uruchomiony, ale animacje wyzwolą błąd . Import z @ kątowego/rdzenia został wycofany, użyj importu z nowego importu pakietu {wyzwalacza, stanu, stylu, przejścia, animacji} z '@ kątowego/animacje ";.

http://angularjs.blogspot.com/2017/03/angular-400-now-available.html

0

Nie widzę nic złego w tym kodzie.

<ng-container *ngIf="!loading;else preloader"> 
    <p>Loaded stuff here!!!!!</p> 
</ng-container> 
<ng-template #preloader> 
    <div class="progress"> 
     <div class="indeterminate"></div> 
    </div> 
</ng-template> 

Upewnię się, że używasz programu Angular 4.0. Ponieważ powyższe plakaty są poprawne pod tym względem, nie jest to obsługiwane w postaci kątowej 2.