2017-03-01 49 views
2

过程中添加的属性我试图通过启动脚本将属性添加到一个(先前创建的)模型使用Strongloop启动

model.getDataSource().definePropery(model_name , property , property_value) 

虽然现在看来,该模型正确地接受属性(我可以通过模型看到它.definition.properties [property])API-Explorer,并且完全的远程API不会相应地更新。有没有一种方法来强制刷新这些?

我的目标是拥有一个插件系统,该系统使用附加的属性和方法扩展现有的基本模型,并且方法 - 部分工作完美无瑕。 我不想在引导之前更改JSON文件,所以动态方法将是非常受欢迎的。

[编辑] 我没弄清楚如何添加方法,但它看起来那么脏,哈克,我恐怕会导致一些问题。添加所有属性后,我用修改后的模型覆盖应用程序的模型:

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

对此黑客的任何想法?

回答

1

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

查看回送组件资源管理器代码和remoteMethodDisabled应用程序事件中的refreshes

所以这并不奇怪,你的解决方法刷新它:

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

因为那会导致发射出一个modelRemoted事件。

可能是一个更安全的方式是只发出自己:

app.emit('modelRemoted', model.sharedClss); 

这不会涉及到所有参与使用app.model机械。我在Github上搜索这个事件的用法,并没有发现任何会有问题的事情。所以我相信现在应该解决你的问题,直到回送修复这个问题。

与此同时,我已经在here上提交了一个bug报告,我建议你留意一下。