Kou*_*sha 1 node.js bookshelf.js
我有两个模型(使用BookshelfJS,或BackboneJS,无所谓): ,.modelA 要求和要求.modelBmodelAmodelBmodelBmodelA
最初,我有:
// modelA
var Bookshelf = require('bookshelf);
var modelB = require('./modelB');
var modelA = Bookshelf.Model.extend({});
module.exports = modelA;
// modelB
var Bookshelf = require('bookshelf);
var modelA = require('./modelA);
var modelB = Bookshelf.Model.extend({});
module.exports = modelB;
Run Code Online (Sandbox Code Playgroud)
然后我在这里读到了关于Bookshelf.plugin('register').所以我将我的代码更改为:
// modelA
var Bookshelf = require('bookshelf);
var modelB = Bookshelf.model('modelB');
var modelA = Bookshelf.Model.extend({});
Bookshelf.model('modelA', modelA);
// modelB
var Bookshelf = require('bookshelf);
var modelA = Bookshelf.model('modelA');
var modelB = Bookshelf.Model.extend({});
Bookshelf.model('modelB', modelB);
Run Code Online (Sandbox Code Playgroud)
在情况1中,存在循环依赖性,其在情况2中被修复.但是现在在情况2中,当modelA被引导时,modelB尚未定义,因此Bookshelf.model('modelB')不存在.
我该怎么办?
好的,所以修复非常简单.这是任何有兴趣的人.将使用它的函数require内部的模型.extend({}).例如:
// modelA (which requires modelB somewhere inside)
var Bookshelf = require('bookshelf);
var modelA = Bookshelf.Model.extend({
tableName : 'modelA',
someFunc : function() {
var modelB = Bookshelf.model('modelB');
// Now use modelB here
}
});
Run Code Online (Sandbox Code Playgroud)
问题是在modelB引导时modelA没有引导.modelB然后不可能要求页面顶部.相反,你需要在函数内部.到那时,您的应用程序正在运行,所有内容都已自举.
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |