所以我试图使用Backbone在NodeJS中扩展2个模型。我的文件是:
Form.js
var Backbone = require('backbone');
var Form = Backbone.Model.extend({
_FormFields: [],
AddField: function(Field) {
this._FormFields.push(Field);
}
});
module.exports = Form;
Register.js
var Form = require('../../../System/Libraries/Form');
var Input = require('../../../System/Libraries/Fields/Input');
var RegisterForm = Form.extend({
Render: function() {
this.AddField(new Input('Username'));
this.AddField(new Input('Password'));
this.AddField(new Input('PasswordConfirm', 'Password Confirm'));
}
});
var fn = function() {
var Module = new RegisterForm();
return Module;
}
module.exports = fn;
我希望每当我需要它并调用Render函数来创建Form的新实例并扩展它。
var Module = require('../../Application/Modules/Register/Register')();
if (Module.Render !== undefined && typeof(Module.Render) == 'function') {
Module.Render();
}
当我现在多次需要它时,我会在Form._FormFields中接收带有(n x 3)个字段的RegisterForm的新实例。
答案 0 :(得分:0)
您必须从_FormFields
的原型中获得Form
。当您创建initialize()
并在其中分配extend()
时,将Form
方法传递给this._FormFields = []
。