AngularJS:获取选定的项目
AngularJS: Get selected Item
我有一个ng-repeat,按行显示用户,当用户被单击时,它会打开包含所有用户详细信息的模式弹出窗口用于编辑用户。当我为用户选择另一个角色并尝试获取新选择的行以传递给 http put 时,它不会给新选择的项目文本,而是仍然返回旧文本
在表格行中显示用户,点击用户名进行编辑
<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-model="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时,它会给出新选择的RoleId,但是当我尝试从<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();
});
};
我认为这是由于对您的ng-repeat
给予错误ng-model
.这里使用的模型是 selectedItem.RoleId
.
Angular
只会更新对象的RoleId
字段,而不是整个对象。应将ng-model
设置为 selectedItem
。
<select ng-required="true" ng-model="selectedItem" class="form-control" ng-options="item._id as item.RoleName for item in myData">
<option value="">Select</option>
</select>
不幸的是,您没有提供任何JSFiddle,因此我无法检查这是否实际上是问题的根源。
编辑
要选择旧角色,必须将其设置为 API 返回的数组的相应入口。
我创建了这个 JSFiddle,以便您可以了解如何正确使用 ng-select
指令。
相关文章:
- 如何获取不属于我项目的上一页的URL
- AngularJS获取范围中的选定项目
- 获取中继器控件ASP.Net中显示的单击项目文本框
- 从下拉列表中获取所选项目,并将其保存到php变量中
- 如何根据单击的项目在modalbox中获取值
- 获取每个项目中不为 null 的最后一个项目
- 获取唯一的项目-Handlebars
- 获取特定视图的项目计数
- 如何在angular js中的select选项中获取所选项目id
- 铁路由器获取当前项目
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- Lodash 从与值数组不匹配的数组中获取项目
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 获取项目的顺序 jQuery 可排序并设置它们的顺序
- 语义 UI 手风琴获取打开事件中打开的项目的索引
- 拉力赛:有没有一种简单的方法来获取项目组合项目下的所有用户故事
- 如何过滤推特流API订阅源,只获取与新闻相关的项目
- 如何在Sonarqube Javascript扩展中获取项目路径
- jQuery.数据集's或获取's的项目不对
- Uikit.可嵌套组件-如何从移动的项目获取id