2015-05-19 101 views
0

我有一张表,我绑定和NG重复。我有一个添加按钮,将在必要时向此表中添加更多行。我也有和保存/取消按钮来保存所做的更改到该表中或恢复添加的行。当我点击取消时,如何删除添加到此表中的行,以显示页面的初始状态?重置角度表与NgRepeat绑定

要添加新行什么,我做的是:

$(".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>"); 
+0

复位持有该该数组的长度行?如果没有某种代码显示你在做什么,很难回答你的问题。 – Claies

回答

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着眼于“数据”:

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

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

if (cancel) { 
    data = originalData; 
} 
+0

问题是我没有在ngrepeat正在使用的数组中添加新行。我;通过修改html直接添加行 –

+0

怎么样?你可以在原始问题中发布你的HTML吗? – sma

+0

@GiovanniRivas通过修改AngularJS中的HTML添加行是错误的!您没有使用AngularJs数据绑定和不良副作用的好处! – aorfevre