у меня есть следующий выпадающий код
<select data-role="listview" class="form-control" id="txtUserRole" name="Role" data-ng-model="AddEditUserCtrl.SelectedRoleId" required="required"
data-ng-disabled="!($root.UserSchoolPermissions.indexOf('User.ChangeRole') > -1) && AddEditUserCtrl.isInEditMode"
data-ng-change="AddEditUserCtrl.roleChanged(AddEditUserCtrl.SelectedRoleId)"
data-ng-class="{'border-error': AddEditUserCtrl.userForm.Role.$invalid && AddEditUserCtrl.userForm.Role.$error.required && (!AddEditUserCtrl.userForm.Role.$pristine || submitted)}">
<option value="" selected class="text-muted">{{'Role' | translate}}</option>
<option data-ng-repeat="option in AddEditUserCtrl.roles" value="{{option.RoleId}}" title="{{option.RoleName}}" data-ng-selected="{{AddEditUserCtrl.SelectedRoleId == option.RoleId}}">{{option.RoleName | translate}}</option>
</select>
я пытаюсь получить AddEditUserCtrl.SelectedRoleId
из ng-модели и передать его в функцию ng-change, чтобы получить объект роли, используя _.findwhere, используя приведенный ниже код JS
AddEditUserCtrl.roleChanged = function (roleId) {
var selectedrole = _.findWhere(AddEditUserCtrl.roles, {
RoleId: roleId
});
AddEditUserCtrl.user.Role = selectedrole
}
после отладки я обнаружил, что roleId
передается прямо из html, а массив AddEditUserCtrl.roles
содержит объект, соответствующий roleId
, но он не работает.
проверьте следующий скриншот для моей отладки
PS: я попытался сделать тег выбора, используя data-ng-options, и это сработало, но мне нужно это с data-neg-repeat на теге option