2017-01-03 8 views
0

Ich versuche, einen Datumswert zu erhalten. Immer wenn das Kontrollkästchen deaktiviert ist und die Datumsauswahl nicht sichtbar ist, bekomme ich den Fehler: "Kann die Eigenschaft 'NTLI' von 'undefined' nicht lesen. wenn das Kontrollkästchen aktiviert ist und die Datumsauswahl sichtbar ist alles funktioniertAngularJS Kann nicht lesen Eigenschaft von undefined

<md-checkbox ng-model="user.NTLI" layout="row" ng-disabled="userForm.$invalid"> 
    NTLI 
</md-checkbox> 
<div ng-show="user.NTLI"> 
<fieldset class="standard"> 
    <legend>NTLI</legend> 
    <md-input-container> 
     <label>Efective date</label> 
     <md-datepicker ng-model="user.efectiveDateNTLI"></md-datepicker> 
    </md-input-container> 
</fieldset> 
</div> 
var efDate = ''; 
if ($scope.user.NTLI != undefined) 
{ 
    efDate = $scope.user.efectiveDateNTLI 
} 
+0

In Ihrem Controller, machen Sie es so user.NTLI = false ;, erhalten Sie diesen Fehler, weil es nicht existiert. –

+0

Haben Sie irgendwo in Ihrer App, die an den Benutzer selbst gebunden ist? – Yaser

+0

Ein Vorschlag (etwas abseits des Themas): Lassen Sie es sich leisten, in der nächsten Zeile '{' zu schreiben. Es sollte in der gleichen Linie sein. –

Antwort

1

Sie müssen haben Benutzer definiert,

$scope.user ={}; 
if ($scope.user.NTLI != undefined) 
{ 
    efDate = $scope.user.efectiveDateNTLI 
} 
-1

Als user nicht verfügbar ist es zeigt undefined wenn Lesen von Eigentum davon. Fügen Sie einfach folgende:

$scope.user = {};

in Ihrem Controller.

+0

Warum wird diese Antwort abgelehnt? – SaiUnique

0

Was ist der Anfangswert, wenn Ihr user Objekt? Sie müssen zuerst initialisiert werden, um von $scope zugänglich zu sein.

$scope.user = {}; 
0

Assign user = {} auf ng-init

wie

<div ng-init="user = {}"> 
... 
..//code 
... 
</div> 

Aber auch andere Antworten sind richtig.

Verwandte Themen