Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 下拉列表中一行的更改反映了所有行_Angularjs_Html_Angularjs Ng Repeat_Angular Ngmodel - Fatal编程技术网

Angularjs 下拉列表中一行的更改反映了所有行

Angularjs 下拉列表中一行的更改反映了所有行,angularjs,html,angularjs-ng-repeat,angular-ngmodel,Angularjs,Html,Angularjs Ng Repeat,Angular Ngmodel,我是新的前端编程,所以希望得到一些指导。我正在使用HTML AngularJs开发一个应用程序,它使用ng repeat和ng模型,并根据数据库中的数据为用户填充多行。每行都有来自数据库的静态数据(通过restAPI作为对象返回)和用于用户选择的动态选择选项。选择选项在app.js中硬编码,并在使用更新按钮进行选择时链接到HTML上的模型以进行DB更新。问题是当我从一行的列表中选择任何值时,这会反映在另一行的选择选项中。每行都有自己的按钮,我可以看到更新功能在行级别工作 下面是HTML和js文件

我是新的前端编程,所以希望得到一些指导。我正在使用HTML AngularJs开发一个应用程序,它使用ng repeat和ng模型,并根据数据库中的数据为用户填充多行。每行都有来自数据库的静态数据(通过restAPI作为对象返回)和用于用户选择的动态选择选项。选择选项在app.js中硬编码,并在使用更新按钮进行选择时链接到HTML上的模型以进行DB更新。问题是当我从一行的列表中选择任何值时,这会反映在另一行的选择选项中。每行都有自己的按钮,我可以看到更新功能在行级别工作

下面是HTML和js文件

<body>
    <h1 align="center">User Tracker</h1>
    <div ng-controller="MainController as main">
        <div>
            <p>Please Enter ID </p>
            <p>
                <input type="text" ng-model="main.model.userName"></input>
                <button ng-click="main.model.getOrgList()">List Org List</button>
            </p>
        </div>
        <hr ng-show="main.model.formSubmitted"></hr>
        <div>
            <table class="table table-bordered" border="1" ng-show="main.model.formSubmitted">
                <thead>
                    <tr>
                        <th>ID</th>
                        <th>User Name</th>
                        <th>Action</th>
                    </tr>
                </thead>
                <tbody>
                    <tr ng-repeat="org in main.model.orgList" id="{{org.id}}">
                        <td>{{org.id}}</td>
                        <td align="center">{{org.user}}</td>
                        <td align="center">
                            <select ng-model="main.model.selectedRecord.appCurrentStateSelected ">
                                <option ng-repeat=" option in main.model.appCurrentStateList " value ="{{option.value}}" id="{{option.id}}"> {{option.name}} </option>
                            </select>
                        </td>
                        <td>
                            <button ng-click="main.model.updateAppDetailsList({id:org.id,userName:org.name,appCrntState:main.model.selectedRecord.appCurrentStateSelected})">Update</button>
                        </td>
                    </tr>
                </tbody>
            </table>
        </div>
    </div>
</body>

用户跟踪器
请输入ID

列表组织列表


身份证件 用户名 行动 {{org.id} {{org.user} {{option.name} 更新

完整的HTML和JS文件在这里-

您正在更新已为每行设置为ng模型的同一对象(appCurrentStateSelected)。这将更新同一对象,并因此影响所有行,因为所有行都将同一对象设置为ng模型。ng模型应该是一个数组或对象数组,然后应该设置为数组[$index],这样ng模型对于每一行都是独立的($index是ng repeat的索引)。下面的plunker演示了这一点。您可以对代码进行相同的更改

{{d.name}

@v soni,你解决了这个问题吗?如果你接受了,请投票/标记为接受。
 <td><select ng-model="selected[$index]" ><option ng-repeat="d in dropd" value="{{d.value}}" id="{{d.id}}">{{d.name}}</option></select></td>