私はAngularJSに少し新しく、データを投稿するのにちょっとした手助けが必要です。私は各入力ボックスのkeypressに新しい入力ボックスを作成しています。ユーザーが追加ボタンをクリックすると、anglejs経由でdbにデータをポストします。私の最初の入力ボックスは正常にデータをdbに投稿しますが、次の入力ボックスはng-clickでは何も行いません。AngularJS動的に作成された要素を使用した投稿
は、ここに私のHTMLです:
<div id="divAddRow" class="row" ng-app="GroupApp">
<div class="col-lg-8" ng-controller="GroupCtrl">
<div id="row1" class="input-group input-group-lg addGroup w3-animate-bottom">
<input class="form-control input-lg txtAddGroup" ng-model="group.GroupName" placeholder="Group Name..." />
<span class="input-group-btn">
<button id="btn" type="button" ng-click="AddGroup();"
class="btn btn-success btn-flat"><i class="fa fa-plus"></i></button>
</span>
</div>
</div>
</div>
私は動的に最初のdivのクローンを()を使用してコントロールを作成するのはここです:ここで
$(document).on('keydown', '.txtAddGroup', (function (e) {
//this function clones the parent group and if one below it does not exist, it adds it to the DOM
var currentRowNum = $(this).parent().attr('id').replace(/row/, '');
var nxtRowNum = parseInt(currentRowNum, 10) + 1;
if ($('#row' + nxtRowNum).parent().length === 0) {
$('div.addGroup:last').after($('<br/>').add($('div.addGroup:first').clone().prop('id', 'row' + nxtRowNum)));
$('div.addGroup:last input').val('');
}
}));
は私のangularjsスクリプトです:
var app = angular
.module('GroupApp', [])
.controller('GroupCtrl', function ($scope, AddGroup) {
$scope.AddGroup = function()
{
AddGroup.AddGrouptoDB($scope.group);
}
}) .factory("AddGroup", ['$http', function ($http){
var fac = {};
fac.AddGrouptoDB = function(group)
{
$http.post("/Group/AddGroup", group).success(function (response) {
alert(response.status);
})
}
return fac;
}])
これはどのようにして達成できますか?私が十分明確でないかどうか知らせてください。何か助けてくれてありがとう!
は、角と、このようにjQueryのDOM操作をミキシングは非常に暗い道路大手ダウンパスです。狂気に。 OK、それほど悪くはないかもしれませんが、(ng-repeatを使って、コントローラーで管理しているコレクションにアイテムを追加するなど)あなたの人生をはるか遠くにする角度の方法があります短期的にも長期的にも簡単です。 – Lex