重置与NgRepeat绑定的角度表

时间:2015-05-19 17:51:49

标签: html angularjs dom angularjs-ng-repeat

我有一张我正在约束的桌子和NG重复。我有一个添加按钮,将在必要时向此表添加更多行。我还有和保存/取消按钮来保存对该表所做的更改或还原添加的行。单击取消时如何删除添加到此表中的行,以便显示页面的初始状态?。

要添加新行,我正在做的是:

$(".socialMediaContainer tbody").append("<tr><td><input name=\"hdnsocialID\" class=\"hdnSocialID\" type=\"hidden\" value=\"0\"><input type=\"text\" id=\"txtSocialName\" class=\"txtLabel socialName\" placeholder=\"Name\" maxlength=\"250\" value=\"\"/></td><td><input type=\"text\" id=\"txtSocialURL\" class=\"txtLabel socialURL\" placeholder=\"URL\" maxlength=\"250\" value=\"\"/></td><td class='DragnDropIcon'></td><td><a class=\"button orange wImg\">Upload <input id='fileSocialUpload" + controlId + "' name='fileSocialUpload" + controlId + "' type=\"file\" class=\"file\" onchange= \"aztec.bc.BrandController.UploadSocialPreViewImage(this,'" + id + "');\"  /></a></td><td><img class=\"socialMedia-container socialImg" + controlId + "\" src='/resources/Images/35x35.png' id=\"fileSocialUpload\"</td>" + socialbuttons + "</tr>");

1 个答案:

答案 0 :(得分:1)

您可以创建要绑定到ng-repeat的数据副本并保存到变量(即originalData)。然后,如果用户点击取消,只需丢弃他们编辑过的数据并将数据设置回originalData

var i;
var originalData = [];
for (i = 0; i < data.length; i += 1) {
   originalData.push(angular.copy(data[i]));
}

然后,您的ng-repeat会查看数据&#39;:

<div ng-repeat="item in data">...</div>

如果用户取消,则只需设置数据:

if (cancel) {
   data = originalData;
}