Angularjs 将ng模型与[]中的mongoose模式对象一起使用

Angularjs 将ng模型与[]中的mongoose模式对象一起使用,angularjs,node.js,mongoose,angular-ngmodel,Angularjs,Node.js,Mongoose,Angular Ngmodel,我有一个相当简单的问题,但到目前为止还没有找到答案。我有一个猫鼬模式,其结构如下: var mongoose = require('mongoose'); var schema = mongoose.Schema; var family = new schema({ _id : String, members : { parent: [{ name: String, age : Number }],

我有一个相当简单的问题,但到目前为止还没有找到答案。我有一个猫鼬模式,其结构如下:

var mongoose = require('mongoose');
var schema = mongoose.Schema;

var family = new schema({
    _id : String,
    members : {
        parent: [{
            name: String,
            age : Number
        }],
        child: [{
            name: String,
            age : Number
        }]
    }
});
以下是表格本身:

<form name="familyForm" id="familyForm">
    <fieldset>
        <select ng-model="familyDropdown" ng-click="populateFamily()" id="familyDropdown">
            <option value="new">New Family</option>
            <option ng-repeat="family in familyList track by family._id" bn-log-dom-creation="With" ng-model="family._id" value="{{family._id}}">{{family._id}}</option>
        </select>
        <input type="text" id="newFamily" placeholder="Create New Family" ng-model="family._id" ng-minlength="2" />
        <input type="text" id="newParent" placeholder="Add a Parent to {{ family._id }}" ng-model="family.members.parent[0].name" ng-minlength="2" />
        <span class="family-box-buttons">
            <button type="submit" class="green-button" ng-click="addFamily(family)" ng-disabled="familyForm.$invalid">
                <i class="fa fa-check"></i>
            </button>
            <button type="button" class="red-button" ng-click="cancelForm()">
                <i class="fa fa-times"></i>
            </button>
        </span>
    </fieldset>
</form>
从我的API

var Family = require('./family.js');

exports.getFamily = function(req, res){
    Family.find({}, function(err, family){
        if(err){
            res.send('Family not found');
        }
        res.send(family);
    });
};

exports.postFamily = function(req, res){
    if(req.body){
        console.log(req.body);
        var family = new Family(req.body);
        family.save(function(err, family){
            if(err){
                res.send('There was an error adding this Family');
            }
            res.send(family);
        });
    }
};
我的问题是,对于由
[]
封装的任何内容,我似乎很难使用
ng model
映射到模式。如果我只需在输入字段中填写
family,我就可以发布。_id

我尝试过类似于
ng model=“family.members.parent.name”
的方法,但我意识到。表示法专门授予对对象模型而不是数组模型的访问权

我也尝试过类似的方法,如
ng model=“family.members.parent[].name
ng model=“family.members.parent[name]

我意识到这一定是我犯的一个相当简单的错误。如果有更好的方法,请给我指出正确的方向。任何指导都将不胜感激。

请尝试:

ng-model="family.members.parent[0].name"
基本上,对于阵列:

var arr = [ "a", 23, { b: "bee" } ]
索引(即数组中项目的编号,从0开始)将访问一个元素。必须使用括号表示法

arr[0] // "a"
arr[1] // 23
arr[2] // { b: "bee }
arr.a  // undefined
arr.b  // undefined
对于对象,可以使用点表示法或括号表示法:

var obj = { a: "donkey", b: 23, c: { cat: "fish", rabbit: "ears" } }

obj.a              // "donkey"
obj['b']           // 23
obj.c.cat          // "fish"
obj['c']['rabbit'] // "ears"
obj.c['rabbit']    // "ears"
obj[0]             // undefined

当前我收到
TypeError:在使用
ng model=“family.members.parent[0].name”
时,无法设置未定义的属性“name”
。无法100%清楚您试图执行的操作。假设您有一个与父模型同名的作用域属性,然后将整个表达式放入
{}
,但只有在使用该名称定义了作用域属性的情况下,这才会起作用。我有一个表单,它将family作为_id,并且可以同时接受成员。我想知道我是否因为还没有定义_id而犯了这个错误?老实说,如果没有某种(非服务器端)代码来演示,几乎不可能理解您要做的事情。我很快就会发布这个消息。
var obj = { a: "donkey", b: 23, c: { cat: "fish", rabbit: "ears" } }

obj.a              // "donkey"
obj['b']           // 23
obj.c.cat          // "fish"
obj['c']['rabbit'] // "ears"
obj.c['rabbit']    // "ears"
obj[0]             // undefined