angularjs - can not retrieve property of object from an objectID passed by html form -


i using mean stack (mongo/mongoose, ember, angular, node).

the database includes 2 schemas

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); 

there html form allows user create new parent, form has select box populated children stored in database , retrieved findchildren() function.

the html here:

<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 child.childname 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> 

the html form shows children's names selectable items in list , when user presses submit button, controller in node application receives correct parent object id. here controller code

create: function(req, res) {         var parent = new parent(req.body);          parent.save(function(err) {             if (err) {                 return res.status(500).json({                     error: 'cannot save parent'                 });             }              res.json(parent);         });     } 

the issue not able display childname when trying show list of parents in table. here html. of parents other information shown

<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> 

the expectation parent.child.childname display childname of referenced object. returns null. if display 'parent.child', display objectid

for example:

i have child called childa.

when view html form create parent, enter parenta name , select childa list.

when press submit, new parent object created.

when view parent list, table shown should show row parenta , childa.

right shows parenta , blank

parent.child return objectid correct, need use populate if want details of reference.

i don't see relavent code findparents, below:

    child.findone({"_id": req.params.id}).populate('parent').exec(function (err, child) {                 if (err) {                     res.status(403).json({                         "status": "403",                         "data": "forbidden"                     });                 } else {                     res.status(200).json({                         "status": "200",                         "message": "success",                         "data" : child                     });                 }    }); 

Comments

Popular posts from this blog

html - Outlook 2010 Anchor (url/address/link) -

javascript - Why does running this loop 9 times take 100x longer than running it 8 times? -

Getting gateway time-out Rails app with Nginx + Puma running on Digital Ocean -