我正在为$ scope中的每个项目创建一个表单。 ng-model没有链接到我的表单提交上的数据。
<li ng-repeat="item in favourites">
<form ng-submit="DeleteFavourite()" class="form-horizontal" id="frmSpec">
<input ng-model="item.Description"/>
<input ng-model="item.Refno"/>
<button type="submit"class="btn">{{item.Description}}
<span class="glyphicon glyphicon-remove"></span>
</button>
</form>
</li>
答案 0 :(得分:0)
该问题与@DavidBeech的评论密切相关。在角度控制器中,范围被视为层次结构对象。
例如,如果你有以下内容:
<div ng-controller="SomeCtrl">
<li ng-repeat="item in favourites">
<form ng-submit="DeleteFavourite()" class="form-horizonatal" id="frmSpec">
<input ng-model="item.Description"/>
<input ng-model="item.Refno"/>
<button type="submit"class="btn">{{item.Description}}
<span class="glyphicon glyphicon-remove"></span>
</button>
</form>
</li>
</div>
当将该控制器注入div并创建新的范围实例时,它只会看到该级别的内容及其父级的范围。它不了解其子女的范围。因此,当您调用DeleteFavourite()时,因为它是附加到控制器范围的方法,所以它不会具有ng重复的上下文。因此,大卫表示你需要做一些像DeleteFavorite(item)这样的事情,以便它知道你提交的内容,否则你将不知道你提交的迭代中的哪个项目。
如果你想要一个例子,请随意评论,我可以把范围继承的例子放在一起。