#javascript #angularjs
#javascript #angularjs
Вопрос:
Есть ли какой-либо способ проверить textfield
имя, содержащее objectVO . fieldName
имя, с помощью AngularJS?
<form name="form" ng-submit="submitForm($event)" novalidate() >
<input type="text" name="OBJECTVO.FIELDNAME" ng-model="fieldName" required />
<span class="error" ng-show="form.OBJECTVO.FIELDNAME.$invalid" >
</form>
Я использую Value Object
шаблон, и AngularJS понимает только простое символьное имя поля полей ввода.
Как мне отобразить ошибку в ng-show?
ng-show=»форма.OBJECTVO.FIELDNAME.$invalid» недопустимый оператор. Каков правильный способ?
Я много исследовал, но не нашел никакого полезного контента. Пожалуйста, помогите!
Комментарии:
1. Документы Angular: docs.angularjs.org/api/ng/input/input[text]
2. Взгляните на эту демонстрацию: plnkr.co/edit/81jgWv?p=preview
3. Поле ввода содержит
objectVO.fieldname
. Как мне отобразить ошибки в ng-show?
Ответ №1:
Для доступа к свойствам объекта необходимо использовать нотацию «array»:
ng-show="form['OBJECT.FIELDNAME'].$invalid"
Смотрите также эту короткую демонстрацию.
В JavaScript это obj.someProp
сокращение для (и эквивалентно) obj['someProp']
.
Это обычно полезно для доступа к свойству объекта, когда мы не знаем имя во время «компиляции», но мы знаем его во время «выполнения» (т. Е. Мы знаем, что будет переменная, содержащая имя свойствамы хотим получить доступ):
function accessSomeProperty(object, propertyName) {
return object[propertyName];
}
Например.
propName = 'test';
accessSomeProperty(obj, propName); // returns: obj[propName]
// === obj['test']
// === obj.test
// with the benefit that 'test'
// was specified dynamically