ドロップダウンリストがあり、ドロップダウンリストからオプションを選択すると、選択ごとにテキストボックスが表示されます。 HTML-ビューの動的テキストボックスからAngularJSコントローラにデータを送信
<select id="nut">
<option>---select---</option>
<option value="N1">N1</option>
<option value="N2">N2</option>
<option value="N3">N3</option>
<option value="N4">N4</option>
</select>
<div id="holder"></div>
<input type="submit" value="save" ng-click="savedata()"/>
Javascript-
$("#nut").change(function() {
val = $(this).val();
var ctr = '<input type="text" name="' + val + '"/>';
$('#holder').append(ctr);
});
今私は、保存ボタンをクリックすると上のAngularJSのコントローラを使用して、データベースに新しい行のすべてのこれらのテキストボックスの値を挿入します。
通常のフォーム要素に対して、data-ng-modelを使用してフォーム要素データをバインドする方法でこれを行う方法を知っています。しかし、これを達成する方法はないとき。フォーム要素の数は可変である。私はこれをやってみました
は、
var ctr = '<input type="text" name="data.' + val + '" data-ng-model="data.' + val + '"/>';
<input type="submit" data-ng-click="savedata(data)"/>
AngularJSは
.controller('testController', function ($scope, $http, $location) {
$scope.savedata = function (data) {
debugger;
alert($scope.data);
}
})
controller-しかし、これは未定義のデータの値を与えます。 他に何ができますか?
ページのロードが終了するとリンクフェーズが完了し、JQueryを使用して動的に作成した入力はAngularとバインドできません。あなたはあなたのニーズを達成することができますが、それはまっすぐではなく、まったく推奨されない方法です。 – davidxxx