Я использую средний стек (монго/мангуст, угл, угловой узел).не может получить свойство объекта из объектаID, переданного формой html
База данных содержит 2 схемы
var ChildSchema = new Schema({
childName: {
type: String,
required: true,
trim: true
}
});
var ParentSchema = new Schema({
parentName: {
type: String,
required: true,
trim: true
},
child: {
type: Schema.ObjectId,
ref: 'Child'
}
});
mongoose.model('Parent', ParentSchema);
mongoose.model('Child', ChildSchema);
Существует HTML-form
, что позволяет пользователю создавать новый Parent
, форма имеет поле выбора, который заполняется с детьми, хранящихся в базе данных и извлекаемых findChildren()
функция.
HTML, здесь:
<section data-ng-controller="ParentController" data-ng-init="findChildren()" >
<form name="parentForm" class="form-horizontal col-md-6" role="form" data-ng-submit="create(parentForm.$valid)" novalidate>
<div class="form-group" ng-class="{ 'has-error' : submitted && parentForm.config.$invalid }">
<label for="child" class="col-md-2 control-label">child</label>
<div class="col-md-9">
<select ng-model="parent.child" ng-options="child as child.childName for child in childs"></select>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-3 col-md-9">
<button mean-token="'create-submit'" type="submit" class="btn btn-info">Submit</button>
</div>
</div>
</form>
</section>
HTML-form
показывает детские имена, как выбираемые элементы в списке и, когда пользователь нажимает кнопку отправки, контроллер в приложении узел получает правильный родительский идентификатор объекта , Вот код контроллера
create: function(req, res) {
var parent = new Parent(req.body);
parent.save(function(err) {
if (err) {
return res.status(500).json({
error: 'Cannot save the parent'
});
}
res.json(parent);
});
}
вопрос в том, что я не в состоянии отобразить ChildName при попытке показать список родителей в таблице. Вот HTML. Все родители другая информация отображается
<section data-ng-controller="DevicesController" data-ng-init="findParents()">
<table border="1" class="mytable">
<tr>
<td>oject</td>
<td>Parent Name</td>
<td>Child</td>
</tr>
<tr ng-repeat="parent in parents">
<td>{{parent}}</td>
<td>{{parent.parentName}}</td>
<td>{{parent.child.childName}}</td>
</tr>
</table>
</section>
Ожидается, что parent.child.childName отобразит ChildName ссылочного объекта. он возвращает нуль. если я отображать 'parent.child', он будет отображать ObjectId
Например:
У меня есть ребенок под названием
ChildA
.Когда я просматриваю форму html для создания родителя, я введу ParentA для имени и выбираю ChildA из списка.
Когда я нажимаю кнопку «Отправить», будет создан новый объект «Родитель».
Когда я просматриваю родительский список, таблица, которая отображается, должна показывать строку с
ParentA
иChildA
.Сейчас он показывает
ParentA
и пустой
ах. это был вопрос новичков. спасибо @Thalaivar. Я неправильно использовал функцию заполнения. после исправления, все работает хорошо! благодаря! –