2016-09-09 1 views
3

はdiv内にng-ifという条件があります。最初はフォームが閉じられています。ボタンをクリックすると、フォームが表示されます。しかし、フォームを提出すると、私はCannot read property '$valid' of undefinedエラーが発生しています。私がをng-showに変更した場合、それは完全にになります。しかし、ng-ifを使用する必要があります。私はエラーの理由を見つけることができません。もう一つ、エラーが発生すると、私はフォームオブジェクトをヌルにも取得しています。誰かが答えを知っているなら、それは感謝されます。ここで

は私のコードJS

<div id="addCommentDiv" ng-if="showAddCommentForm == true"> 
    <form id="formAddComment" name="formAddComment" novalidate> 
     <textarea id="taAddComment" name="taAddComment" placeholder="Add a comment.." ng-model="new_comment" ng-maxlength="1000" ng-required="true"></textarea> 
     <button type="button" ng-click="addComment()" ng-disabled="addCommentDisabled">Ok</button> 
    </form> 
</div> 

HTMLで

$scope.addCommentDisabled = false; 
$scope.addComment = function() { 
    if ($scope.formAddComment.$valid) { 
     console.log('valid'); 
    } 
} 
+0

参照[これ](https://github.com/turinggroup/angular-validator/issues/14)。私の問題も同じです。 –

+0

しかし、私はそのライブラリを使用していません。私はangularjsだけを使用しています。 –

答えて

5

はでaddComment形態を渡し - fiddle

$scope.addComment = function (formAddComment) { 
console.log('valid'); 
if (formAddComment.$valid) { 
    console.log('valid'); 
} 
} 

<button type="button" ng-click="addComment(formAddComment)" ng-disabled="addCommentDisabled">Ok</button> 
+0

この場合、なぜフォームを渡す必要があるのか​​説明できますか? –

+0

このリンクを介して行くことができます - https://docs.angularjs.org/api/ng/directive/ngIf ... – Disha

0

NG-かの条件があるまで、DOMにコンポーネントを追加しません条件満足しているのに対し、ng-show DOMにコンポーネントを追加し、条件が満たされると表示します。 これはDOM上で利用できないため、エラーを出している理由です。

+0

@AnchalGupta、私はそれを知っています。しかし、Googleチームがその問題に関心を持っている必要があるので、いくつかの解決策が必要です。あなたは解決策または別の方法を知っていますか?私はdiv要素を再コンパイルしようとしました。しかし、同じ問題。 –

関連する問題