2017-04-11 7 views
0

以下のコードは、フォームを動的に生成します。 - この「DynamicContentに」idは今ng-model属性を動的に生成されるjQuery要素にバインドするにはどうすればよいですか?

start form name="myForm" ng-submit="submitForm()" 
div id='dynamicContent' 
end form    

以下のようにJSPでこれは角JS 1.4

var $label = $('<label display="inline-block" width=25px>').text(jsonObj.ATTRIBUTES[key].ATTRIBUTE_NAME+' : '); 
    var $input = $('<input type="text">').attr({id: jsonObj.ATTRIBUTES[key].ATTRIBUTE_NAME+'Id', name: jsonObj.ATTRIBUTES[key].ATTRIBUTE_NAME, 'ng-model':'entity.'+jsonObj.ATTRIBUTES[key].ATTRIBUTE_NAME}); 
    $input.appendTo($label); 
    $('#dynamicContent').append($label).append('<br/>'); 

次に書かれているが、どのように私は、フォームを提出することを確認しない、と私は次のようになりますコントローラ内の「エンティティ」にアクセスできるか?

PS:AngularおよびjQueryの新機能 Angularを使用する場合はどうすればいいですか。

+1

、jQueryのを使用して取り除きます。現在あなたがしていることは既にインパルアされています – charlietfl

+0

@charlietflさて、それでは角度を使ってどうやって進めますか?どんなリード? – devk

+0

#dynamicContentにラベル(および入力)を含め、jQueryを使用してラベルを生成しないでください。フォームが表示されるかどうかを判断するロジックがある場合は、ng-show –

答えて

0

あなたのHTMLフラグメントをコントローラーの有効範囲に対して$compileし、#dynamicContentを追加する必要があります。このためにはコントローラに$compileを注入する必要があります。

サンプルコード:

var htmlContent = "<prepare-your-html-using-jquery>"; 
$("#dynamicContent").append(
    $compile(htmlContent)(scope); 
); 

参考:あなたは両方に新しいしている場合は、角度のアプリを構築している場合angularjs-jquery-how-to-get-dynamic-content-working-in-angularjs

+0

このスニペットはうまくいきますが、どのようにすれば私の必要条件を理解することができますか?ラベルと対応する入力フィールドの両方が動的で、私は仮定しているjQueryを使用してフォームを作成する必要があります。 – devk

+0

@devk jQueryを使用して、その文字列を '$ compile'に渡します。 –

+0

@devk視覚化できるように答えを更新しました。 –

関連する問題