我有一个模型,我需要随时切换dataSources。为此,我在该模型上创建了一个远程方法,并使用了attachTo()方法。
// myModel.js
switchDataSource = function(req, fn){
const app = MyModel.app;
console.log('req.dataSource ', req.dataSource);
if(req.dataSource === 'datasource1'){
MyModel.attachTo(app.dataSources.datasource1);
} else if(req.dataSource === 'datasource2'){
MyModel.attachTo(app.dataSources.pagarmeTest);
}
console.log('Datasource Attached: ', MyModel.getDataSource().settings.name);
fn();
}第一次调用远程方法时,数据源将相应更改。
例如,datasource1附加到myModel,现在我用datasource2调用远程方法。一切都会好起来的。
但是,如果我调用这个远程方法,传递datasource1 --之前附加到myModel的方法--它将无法工作。console.log(Model.getDataSource().settings.name)显示数据源已经发生了变化,但是当我使用模型及其数据源时,它仍然是以前的数据源。
在datasources.local.js,上,我已经声明了数据源,我将不断地将这些数据源与我的模型Model连接和分离。
// datasources.local.js
exports.datasource1 = {
name: 'datasource1',
connector: 'rest',
...
}
exports.datasource2 = {
name: 'datasource2',
connector: 'rest',
...
}因此,我似乎不能将数据源更改为以前被同一模型使用过的数据源.我注意到问题不是切换到新的dataSource,而是试图附加以前由同一个模型.附加的数据源。
发布于 2017-05-25 20:10:02
也许最好的选择是重新加载所有型号。有可能在回环中发生吗?
https://stackoverflow.com/questions/44188732
复制相似问题