我有一個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