我有一个NG-重复显示用户行,点击用户时,它打开模式弹出包含所有用户的详细信息编辑用户。当我为用户选择另一个角色并尝试获取新选择的行以传递给http put时,它不会给出新选择的项目文本,而是返回旧文本AngularJS:获取选定项目
//在表中显示用户行,点击用户名编辑
<tr ng-repeat="item in usersData | filter: searchBox">
<td><a ng-click="openEditUser($index)">{{item.UserName}}</a></td>
<td>{{item.EMail}}</td>
<td>{{item.RoleName}}</td>
<td style="text-align: right;">{{item.IsActive ? 'Yes' : 'No'}}</td>
</tr>
当模式弹出打开,我得到的所有角色,从API,并将其添加到<select>
场
//获取所有角色,并添加到选择现场
$http.get('mydomain.com/api/Users/GetAllRole').then(function (response) {
$rootScope.myData = {};
$rootScope.myData = response.data;
});
//这里NG-模型=“selectedItem.RoleId”
<select ng-required="true" ng-model="selectedItem.RoleId" class="form-control"
ng-options="item._id as item.RoleName for item in myData">
<option value="">Select</option>
</select>
这里时,我选择在<select>
领域的用户另一个角色,并得到$ scope.selectedItem.RoleId它给新选择角色ID,但是当我尝试从<select>
场不会给新选定的项目获得$ scope.selectedItem.RoleName而是仍返回旧的所选项目
$scope.EditUser = function(){
$http.put("domain.com/api/Users/UpdateUser", {
_id: $scope.selectedItem._id,'RoleId': $scope.selectedItem.RoleId, 'EMail': $scope.selectedItem.EMail, RoleName : $scope.selectedItem.RoleName, IsActive: $scope.selectedItem.IsActive
}).then(function (response) {
$route.reload();
$scope.ok();
$scope.simpleSuccess();
}, function (error) {
$scope.ok();
$scope.simpleError();
});
};
我想老选择的角色是自动的在
@ user3055606看看我的编辑老的作用,会告诉你如何使用'NG-select' – Erazihel
你的意思我将不得不将选定的索引传递给$ scope.selectedItem = $ scope.myData [0]; – user3055606