私のモデルに問題があります。ステータスを保存すると、
キャッチされていない TypeError: 未定義のメソッド 'get' を呼び出せません
誰にもアイデアはありますか?私は Backbone の初心者で、Coffeescript の初心者です。
View = require 'views/base/view'
module.exports= class TaskView extends View
autoRender: true
eventSounder:false
taskRemoveTimeout:500
completeTask:(e)=>
e.preventDefault() if e
e.stopPropagation() if e
@toggleStatus()
@model.save {
status: @model.get('status') # error
}, {
success: =>
unless @removeTaskTimeout
@removeTaskTimeout = setTimeout(@removeTaskItem, @taskRemoveTimeout)
}
toggleStatus: =>
if @model.get('status') is 'OPEN'
if @removeTaskTimeout
clearTimeout @removeTaskTimeout
@removeTaskTimeout = null
@model.set('status', 'CLOSED')
else if @model.get('status') is 'CLOSED'
@model.set('status', 'OPEN')
removeTaskItem: =>
if @model.get('status') is 'CLOSED'
@eventSounder = true
@datastore.userTasks.remove @model
@model?.collection?.remove @model
console.log @model
getTemplateData: =>
td = super
td.completeClass = "complete" if @model.isComplete?()
td.assignedBy = @datastore.dimensionUsers.getUserName(@model.get('assigner'))
if !td.assignedBy
td.assignedBy = "Dimension User Not Found"
td
アップデート:
以下は、completeTask を呼び出すイベントを含むビューです。
View = require 'views/base/task'
template = require 'views/templates/fanview/right/task_carousel_item'
module.exports = class TaskCarouselItem extends View
template: template
template = null
className: 'item'
listen:
'change model' : 'render'
'toggleStatus model' : 'completeTask'
attach: ->
super
id = @model.id
@$el.data('id', id)
@publishEvent 'taskCarousel:status:update'
initialize: ->
super
console.log 'Initialize', @model