我是前端编程的新手,所以希望得到一些指导。我正在使用HTML AngularJs开发一个应用程序,它使用ng-repeat和ng-model,并根据数据库中的数据为用户填充多行。每行都有来自DB的静态数据(通过restAPI作为对象返回)和用于用户选择的动态选择选项。选择选项在app.js中进行硬编码,并在使用更新按钮选择时链接到HTML上的模型以进行数据库更新。问题是当我从一行中的列表中选择任何值时,这反映在另一行的选择选项中。每行都有自己的按钮,我可以看到更新功能正在行级。
下面是HTML和js文件
$lib->request($uri, array(
'name' => 'name of video',
'description' => 'description'
), 'PATCH');
完整的HTML和JS文件在这里 - https://jsfiddle.net/4jbtL0cj/
答案 0 :(得分:2)
您正在更新为每一行(appCurrentStateSelected)设置为ng-model的同一对象。这将更新同一个对象,从而影响所有行,因为所有行都设置为ng-model。 ng-model应该是一个数组或对象数组,然后它应该设置为array [$ index],这样ng-model对每一行都是分开的($ index是ng-repeat的索引)。这在下面的plunker中得到了证明。您可以对代码进行相同的更改。
http://plnkr.co/edit/FdWJyzNfbISa9NKFsCqt?p=preview
<td><select ng-model="selected[$index]" ><option ng-repeat="d in dropd" value="{{d.value}}" id="{{d.id}}">{{d.name}}</option></select></td>