2016-07-14 75 views
0

我有几个loopback模型,我想向它们添加共享函数。 我真的不知道如果我理解loopback的extend的方法,但我创建了一个Dictionary模型,将其他模型base属性设置为词典并卡在这里。loopback父模型 - 如何设置属性并创建子模型

本质上,我需要创建一个子模型的实例,获取一些数据并构建一个哈希。然后我打算在启动脚本中多次调用app.models.ChildModel.createHash()来为每个模型创建字典。

我不知道从哪里开始..如何将子类名称(或实例)传递给父类?我显然需要它来查询数据。

我做了一个工作解决方案的具体Regions模型

module.exports = function(Regions){ 
var countriesHash={}; 
Regions.setup=function(next){ 
    Regions.find({where:{type:'Country'}}, function(err, countries){ 
     countries.forEach(function(country){ 
      countriesHash[country.id]=country; 
     }); 
     console.log('hash built'); 
     next(); 
    }); 
}; 

,但我想它重构为抽象类Dictionary和刚刚成立像孩子的名字和几个属性的具体型号where

回答

1

您可以使用mixinhere)将共享功能放在那里并在模型中使用。

你也可以给他们发送一些选项。

+0

我尝试使用混入 module.exports =函数(型号,选项){ Model.createHash =函数(下一个){ Model.find({其中:options.where},功能(ERR,项目){ 但项目是空的,我认为这是因为通用模型,而不是一个特定的模型实例。 –

+0

罢工,它的工作完美。我想上次我试着mixin有一些其他的错误,结果倒空。很多。 –