有一个令人沮丧的时间试图解决这个问题。 尝试使用下拉菜单替换3个复选框。
复选框完美无缺。更新用户时,它会正确提供数据库的数据,当您再次返回编辑时,它会根据您之前选择的内容检查正确的框。下拉菜单不是这种情况。我似乎无法让它发挥作用。它不会自动选择下拉列表中保存的值,当我在下拉列表中选择一个值并保存时,它不会被写入数据库。我使用了复选框代码中的所有信息,所以我不确定它为什么不能工作。
我喜欢DROPDOWN v2.0的简单性,但是我需要在角色中添加文本。就像在复选框和下拉列表v1.0中一样。甚至可以在ng-option中使用吗?
CHECKBOX
<div ng-repeat="role in ctrl.userRoleEdits">
<div class="checkbox checkbox-inline">
<input id="role{{role.Id}}" type="checkbox" name="role{{role.Id}}" ng-model="role.Selected" />
<label for="role{{role.Id}}" class="short">{{role.Name}}</label>
</div>
</div>
DROPDOWN v1.0
<select class="form-control">
<option ng-repeat="role in ctrl.userRoleEdits" id="role{{role.Id}}" name="role{{role.Id}}" ng-model="role.Selected">{{role.Name}}</option>
</select>
DROPDOWN v2.0
<select class="form-control" ng-model="role.Selected" ng-options="role as role.Name for role in ctrl.userRoleEdits track by role.Id"></select>
答案 0 :(得分:1)
... Emmmm
我相信角色。选择角色身份......
如果是这样的话:
对于DROPDOWN v1.0,ng-model应该保留这样的标签:
<select class="form-control" ng-model="role.Selected">
<option ng-repeat="role in ctrl.userRoleEdits" value="role.Id" id="role{{role.Id}}" name="role{{role.Id}}">{{role.Name}}</option>
</select>
2017-01-13 10:25编辑:添加value="role.Id"
在DROPDOWN v2.0中,ng-model需要匹配userRoleEdits对象之一。然后它会显示所选的。
这意味着userRoleEdits中的对象是否像:
{
Id: 1,
Name: 'role 1'
}
然后对于DROPDOWN v2.0,role.Selected应该是相同的结构。 Id和Name都应该相同,以便下拉列表将其显示为所选。