Loopbackjs strong在引导期间循环添加属性

Loopbackjs strong在引导期间循环添加属性,loopbackjs,Loopbackjs,我试图通过使用bootscript向(以前创建的)模型添加属性 model.getDataSource().definePropery(model_name , property , property_value) 虽然模型似乎正确地接受了属性(我可以通过model.definition.properties[property]看到它),但API浏览器和完整的远程API可能不会相应地更新。是否有方法强制刷新这些文件 我的目标是拥有一个插件系统,它通过附加属性和方法扩展现有的基本模型,方法部分可

我试图通过使用bootscript向(以前创建的)模型添加属性

model.getDataSource().definePropery(model_name , property , property_value)
虽然模型似乎正确地接受了属性(我可以通过model.definition.properties[property]看到它),但API浏览器和完整的远程API可能不会相应地更新。是否有方法强制刷新这些文件

我的目标是拥有一个插件系统,它通过附加属性和方法扩展现有的基本模型,方法部分可以完美地工作。 我不想在引导之前更改JSON文件,所以最好使用动态方法

[编辑] 我确实想出了如何添加该方法,但它看起来太脏了,我担心它会引起问题。添加所有属性后,我将用修改后的模型覆盖应用程序的模型:

app.model(model , { dataSource: model.getDataSource() } )

对这个黑客有什么想法吗?

我相信如果没有你的解决方法,它应该是好的,因为它似乎只是API浏览器,没有刷新。其他功能应保持不变

查看环回组件资源管理器代码,它在
modelmoted
remoteMethodDisabled
应用程序事件上运行

因此,毫不奇怪,您的解决方案会刷新它:

app.model(model,{dataSource:model.getDataSource()})

因为这会导致发出
modelmoted
事件

也许更安全的方法是让你自己排放:

app.emit('modelRemoted', model.sharedClss);
这不会涉及所有使用
app.model
的机器。我在Github上搜索了这个事件的用法,没有找到任何与之相关的问题。所以我相信它现在应该解决你的问题,直到环回解决这个问题

同时,我已经为此提交了一份bug报告,我建议您密切关注