我正在开发一个电子桌面应用程序,并且用作数据库NeDB。所以我需要将表单保存到数据库。我创建了一个类,该类包含要通过插入方法保存到数据库中的对象属性,我将添加更多方法,然后创建一个从第一个类扩展的另一个类,该类将处理表单事件并在第一个类中填充属性,现在,我只需要将父类属性插入数据库。
我在父类“插入”中创建了一个方法,因此它将该对象插入数据库,从扩展类中调用该对象,但是它给了我“ this = undefined”,我试图将“ this”作为参数传递给然后使用insert方法将所有对象保存到数据库中,而不仅仅是我需要保存的唯一属性。
父班
db = require '../database/db.js'
class Member
constructor: (@id, @cin, @firstName, @lastName, @birthday, @telephone, @email, @address, @dateOfSubscribe, @achievement) ->
insert: (obj) ->
return new Promise (reject, resolve) ->
db.members.insert doc: obj
.then (respond) ->
resolve respond
.catch (err) ->
reject err
module.exports = Member
扩展类
Member = require './member.js'
class Form extends Member
constructor: (@elem) ->
super()
@elem.oninput = @onInput.bind @
@elem.onchange = @onChange.bind @
@elem.onsubmit = @onSubmit.bind @
onInput: (event) ->
{name, value} = event.target
@[name] = value
onChange: (event) ->
# console.log '--on change event: ', event
# console.log @
onSubmit: (event) ->
event.preventDefault()
@.insert new Member({...this})
.then (result) ->
console.log '-- result: ', result
.catch (err) ->
console.log '-- error: ', err
new Form newMemberForm
我只想将父类的属性保存到数据库中,所以使用这种方式是因为它更干净,可以更改它,但是我想说它可以工作。