2015-10-15 67 views
2

注意:我是MEAN的新手,並且每個部分都意味着什麼。MEAN.JS:如何創建需要另一個模型的1個模型

參照默認配置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' 
    } 
}); 

回答

3

如果我正確理解這些都是你需要遵循的步驟:

1)確保有一個在你的程序的服務器端控制列表功能( 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)創建程序Ø適當的政策(programs.server.policy.js,此處省略)和路線n中的服務器側(program.server.routes.js)

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

3)創建客戶端角度事件服務(此處省略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> 

我省略了一些所需的代碼但是是應該提供一個好的開始,讓我知道如果仍然感到棘手。

相關問題