2017-01-03 4 views
0

日付の値を取得しようとしています。チェックボックスをオフにして日付ピッカーが見えなくなると、次のようなエラーが表示されます。 '未定義のプロパティ' NTLI 'を読み取れません。チェックボックスがチェックされ、日付ピッカーが見えるすべてがAngularJS未定義のプロパティを読み取ることができません

<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つの提案(トピックはほとんどない):次の行に '{'を書く習慣を残す。それは同じ行にあるはずです。 –

答えて

1

正常に動作しているあなたは、ユーザーが定義されている必要がある場合は、userとして

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

が利用できないことがundefinedときを示していますそれを読む性質。ただ、次の行を追加します。あなたのコントローラで

$scope.user = {};

を。

+0

なぜこの回答が下落したのですか? – SaiUnique

0

userオブジェクトの初期値は何ですか?最初に$scopeからアクセスできるように初期化する必要があります。

$scope.user = {}; 
0

割り当てuser = {}

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

よう

ng-init上でも他の回答も正しいです。

関連する問題