1

私はこのようなフォームを持っています:

my_file.html:

<form name='first_form'>
  ...
</form>
<div ng-include="'/includes/second_form.html'"></div>

<a ng-click="myLog(first_form);myLog(second_form);">Submit</a>

/includes/second_form.html :

<form name='second_form'>
  ...
</form>

In はfirst_formコントローラーに渡すことができますが、 は渡せませんsecond_form。(myLog は console.log を実行します)。

含まれているファイルのフォームにアクセスするにはどうすればよいですか? angular でフォームにアクセスするより良い方法はありますか?

4

1 に答える 1

0

原則は次のとおりです。

ディレクティブでラップmy_file.htmlし、次のように 2 番目の形式もディレクティブとして含めます。

<div outer-directive>
    ...
    <div inner-directive></div>
    ...
</div>

は、引数をスコープに格納outerDirectiveするメンバー メソッド (たとえば、 ) を持つコントローラーを定義する必要があります。内部ディレクティブは親コントローラーを必要とし、このメソッドを次のように呼び出します。setInnerForm(form)form

app.directive("innerDirective", function() {
    return {
        ...
        templateUrl: "/includes/second_form.html",
        require: "^outerDirective",
        link: function(scope, elem, attrs, outerController) {
            outerController.setInnerForm(scope.second_form);
        },
        ...
    };
}

原則の動作デモはこちら: http://jsfiddle.net/ABK5y/

于 2013-10-21T12:55:09.780 に答える