【问题标题】:MEAN.JS: How to create of 1 model that requires anotherMEAN.JS:如何创建需要另一个模型的 1 个模型
【发布时间】:2016-01-14 10:57:10
【问题描述】:

注意:我对 MEAN 以及构成 MEAN 的每个部分都是新手。

参考MEANJS的默认配置和示例模块Articles。我创建了另一个名为Program 的模型。

我知道如何将其他字段或属性添加到模型以便能够相应地创建和编辑,但我不知道该新属性何时是对另一个模型的引用。

在不深入了解Program 的详细信息的情况下,我想修改Articles 的现有创建和编辑页面,以要求用户从下拉列表中指定它属于哪个Program

我已经更新了Articles 架构

var ArticleSchema = new Schema({
  created: {
    type: Date,
    default: Date.now
  },
  title: {
    type: String,
    default: '',
    trim: true,
    required: 'Title cannot be blank'
  },
  content: {
    type: String,
    default: '',
    trim: true
  },
  user: {
    type: Schema.ObjectId,
    ref: 'User'
  },
  program: {
    type: Schema.ObjectId,
    ref: 'Program',
    required: 'Program cannot be blank'
  }
});

【问题讨论】:

    标签: mean meanjs


    【解决方案1】:

    如果我理解正确,这些是您需要遵循的步骤:

    1) 确保您的 Program 服务器端控制器 (program.server.controller.js) 中有一个列表函数

    TheProgram = mongoose.model('Program')
    
    ...
    /**
     * List of programs
     */
    exports.list = function (req, res) {
        console.log('ProgramController.server.list');
        TheProgram.find().exec(function (err, events) {
            if (err) {
                return res.status(400).send({
                    message: errorHandler.getErrorMessage(err)
                });
            } else {
                res.json(programs);
            }
        });
    };
    

    2)为服务器端的程序(program.server.routes.js)创建适当的策略(programs.server.policy.js,此处省略)和路由

    module.exports = function (app) {
        // program collection routes
        app.route('/api/programs').all(programPolicy.isAllowed)
            .get(programs.list);
    

    3) 创建应注入控制器的客户端 Angular 事件服务(此处省略programs.client.service.js)并创建从服务器获取程序列表的控制器(programs.client.controller.js)侧面:

    // Find a list of Programs
            $scope.find = function () {
                $log.info('executing ProgramController.$scope.find');
                self.programs = Programs.query();
            };
    

    4) 比加载页面上的节目列表:

    <select ng-options="program in programs" ng-model="selectedProgram"></select>
    

    我省略了一些必需的代码,但这应该是一个好的开始,如果仍然觉得棘手,请告诉我。

    【讨论】:

      猜你喜欢
      • 2012-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多