2017-01-03 2 views
0

Я пытаюсь получить значение даты. Всякий раз, когда флажок снят и выбор даты невидим, я получаю сообщение об ошибке: «Невозможно прочитать свойство« NTLI »undefined». если флажок установлен и выбор даты видно все работает отличноAngularJS Не могу прочитать свойство 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

В вашем контроллере сделайте так user.NTLI = false ;, вы получите эту ошибку, потому что она не существует. –

+0

У вас есть приложение, которое связано с самим пользователем? – Yaser

+0

Одно предложение (немного не по теме): оставьте привычку писать '{' на следующей строке. Он должен быть на той же линии. –

ответ

1

Вы должны иметь определенный пользователь,

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

Как user не доступен он показывает undefined когда считывая его свойства. Просто добавьте следующее:

$scope.user = {};

в контроллере.

+0

Почему этот ответ ниспровергнут? – SaiUnique

0

Что такое начальное значение, если ваш объект user? Вам необходимо, чтобы он был инициализирован первым, чтобы быть доступным от $scope.

$scope.user = {}; 
0

Присвоить user = {} на ng-init

как

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

Но другие ответы тоже правильно.

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