Angular 嵌套重复,保存到数据库不起作用

Angular nested repeat, save to database not working

我正在使用 MEAN 应用程序,现在我想从我的数据库中读取数据,允许用户对其进行编辑,并将更改更新到数据库中。一切正常,除了嵌套重复,我可以获取哪个值,但不能保存到数据库中。

代码:

<div class="controls" ng-repeat="(key, module) in project.website.data.modules">
                    <input type="checkbox" name="modules" value="{{key}}" data-ng-model="module.active" id="{{key}}"><label for="{{key}}"> module: {{key}} = {{module.active}}</label><br>

                    <div class="features_settings" ng-repeat="(key2, feature) in module.data">
                        <input type="text" name="data" value="{{key2}}" data-ng-model="feature" id="{{key2}}"><label for="{{key2}}"> feature {{key2}}, value= {{feature}}</label><br>
                    </div>
                </div>

给出 uniekewebsitefeature.data.title 的结果: (这是正确的,因为我将默认值设置为 "asdf")

feature title, value= asdf

猫鼬模式:

website: {
    active: { type: Boolean },
    data: { 
        domain: { type: String },
        modules: {
            aboutus: {
                active:{ 
                    type: Boolean,
                    default: false
                },
                data: {
                    title: { 
                        type: String,
                        default: ""
                    },titlerererere: { 
                        type: String,
                        default: ""
                    },
                    text: { 
                        type: String,
                        default: ""
                    }
                }
            },
            contact: {
                active: { 
                    type: Boolean,
                    default: false
                },
                data: {
                    fields: [
                        {
                            type: String,
                            values: [String],
                            label: String,
                            placeholder: String
                        }
                    ],
                    recipient: { 
                        type: String,
                        default: ""
                    }
                }
            },
            uniekewesitefeature: {
                active: { 
                    type: Boolean,
                    default: false
                },
                data: {
                    title: { 
                        type: String,
                        default: "asdf"
                    },
                    text: { 
                        type: String,
                        default: ""
                    }
                }
            }
        }
    }
}

客户端控制器

// Update existing Project
    $scope.update = function() {            
        var project = $scope.project;

        project.$update(function() {
            $location.path('projects/' + project._id);
        }, function(errorResponse) {
            $scope.error = errorResponse.data.message;
        });
    };

服务器控制器

exports.update = function(req, res) {
var project = req.project;

project = _.extend(project , req.body);

project.save(function(err) {
    if (err) {
        return res.status(400).send({
            message: errorHandler.getErrorMessage(err)
        });
    } else {
        res.jsonp(project);
    }
});

};

当我将模块设置为 active/false 时,它工作正常并将更改保存到数据库中,但是当我保存该模块(嵌套的)的功能时,它不会保存到数据库中, 即使艰难,它也能够从数据库中获取价值。

有什么想法吗?

终于修复了它,需要进行以下更改:

<div class="controls" ng-repeat="(key, module) in project.website.data.modules">
                    <label for="{{key}}"> module: {{key}} = {{module.active}}</label>
                    <input type="checkbox" name="modules" value="{{key}}" data-ng-model="module.active" id="{{key}}"><br>

                    <div class="features_settings" ng-repeat="(key2, feature) in module.data track by $index">
                        <label for="{{key2}}">Feature: {{key2}} , value = {{module.data[key2]}}</label>
                        <input type="text" class="form-control" name="features" data-ng-model="module.data[key2]" id="{{key2}}"><br>
                    </div>
                </div>

希望它对功能中的其他人有所帮助:)