【发布时间】:2016-01-14 05:21:44
【问题描述】:
我有两个表单在我的应用程序的不同页面上相互重复,它们执行的功能略有不同。它们看起来像这样(去掉额外的代码):
<form role="form" name="myForm" ng-submit="processForm()"
novalidate>
<div>
<fieldset id="basicForm">
<div id="firstname" class="form-group">
<div class="input-group" id="inputSection">
<input id="firstNameInput" title="Input first name"
type="text" class="form-control form-custom basicInput"
name="firstname" placeholder="First Name"
ng-model="myForm.formData.firstname" maxlength="20"
</div>
</div>
</fieldset>
</div>
</form>
还有这个:
<form role="form" name="myFormCopy" ng-submit="processForm()"
novalidate>
<div>
<fieldset id="basicForm">
<div id="firstname" class="form-group">
<div class="input-group" id="inputSection">
<input id="firstNameInput" title="Input first name"
type="text" class="form-control form-custom basicInput"
name="firstname" placeholder="First Name"
ng-model="myFormCopy.formData.firstname" maxlength="20"
</div>
</div>
</fieldset>
</div>
</form>
如您所见,这些字段是相同的,只是表单具有不同的名称和不同的 ng-model。
我注意到,当从应用程序中的一个页面更改为另一个页面时,如果我在一个页面上的此字段中键入,该文本将自动出现在另一页面上的匹配字段中。尝试调试它,似乎一页上模型中的数据将在另一页上的模型中重复。
有没有办法避免这种情况?即使更改模型名称(例如 myForm.formData.firstname 和 myFormCopy.formData.firstnamecopy),每个模型中都只存在一个 firstname 和 firstnamecopy。这到底是怎么回事?
【问题讨论】:
-
您拥有相同的
ng-model,这就是为什么在两次更改中都显示相同的数据。基本上你需要更改其中一页的ng-model。 -
您最初是如何填充
myForm的?从您的描述看来,您最终将myForm和myFormCopy引用到同一个javascript 对象。 -
@PankajParkar 如果你仔细观察,他们没有相同的 ng-model。
-
@DanielBeck 不确定我最初如何填充它是什么意思?然而,根据帕特里克在下面所说的话,听起来你是对的。
标签: javascript html angularjs forms