2016-05-03 7 views
0

私はAngularjs v1.2.21を使用していますが、ディレクティブ内でフォームの状態にアクセスできません。別のバージョンが動作します(プロジェクトAngularjsのバージョンを変更できません)...代わりに、コントローラのディレクティブコントローラにフォームの状態にアクセスできない

plunkr

.directive('testReplace', function() { 
return { 
    restrict: 'EA', 
    replace: true, 
    scope:{ 
    transaction: '=', 
    isvalid: '=' 
    }, 
    templateUrl: 'modal-back.html', 
    controller: function($scope) { 
     console.log($scope.myForm) 
    } 
    }; 
}) 

答えて

1

$ scope.myFormがあります。フォーム内で何か(クリックイベントなど)が発生するのを待っていない限り、コントローラの代わりにリンクを使用する必要があると思います。

controller: function($scope){ 

へ::だからからこの

にそれを変更してみてください

link: function($scope){ 

あなたが実際にデータを添付しているときに、リンクフェーズがあるので、あなたがリンクを使用するので、あなたがログインしたときに必要になります正しい情報を参照してください

plunkr:http://plnkr.co/edit/eCW1lrsS5GTbmoA9JAcL?p=preview

さらに、準備をして、コントローラとリンクをコンパイルしたい場合は、ここに大きなスレッドがあります:AngularJS : link vs compile vs controller

+0

ご協力いただきありがとうございます。それは私のために働く!別のバージョンでは、コントローラを使用してフォームの状態にアクセスできるため、変です。 – John

+0

別の質問があります。コントローラとリンクを使用する必要がある場合は、コンパイルエラーが発生します。これは正常です – John

+0

@ジョン何がエラーと言っていますか?なぜ両方ですか?コントローラーでできること全てをリンクで行うことができます。 – ajmajmajma

3

使用リンク機能:http://plnkr.co/edit/EI8qVhh9pOBiEtD4koGB?p=preview


link: function(scope){ 
     console.log(scope.myForm) 
} 
+0

ありがとうございます。それは私のために働く!別のバージョンでは、コントローラを使用してフォームの状態にアクセスできるため、変です。 – John

+0

別の質問があります。コントローラとリンクを使用する必要がある場合は、コンパイルエラーが発生します。これは正常です – John

+0

@ジョン:なぜあなたは両方が欲しいですか?あなたはどんなエラーを出していますか? –

関連する問題