我有这段代码 -
class TableManager
tables : {}
tableViews :{}
nextId : 0
rootEl : 'body'
addTable:(json,el)->
newTableModel = new TableModel(json,@nextId)
newTableModel
@tables[@nextId] = newTableModel
el = "#table1"
newView = new TableView({model : newTableModel, columns : json["Columns"], el : el, id : @nextId})
@tableViews[@nextId] = newView
newTableModel.renderModel()
@nextId++
class TableView extends Backbone.View
tableId : ''
columns : ''
thead : ''
tbody : ''
input : ''
rows : ''
inputId : ''
typingTimer : ''
doneTypingInterval : 2000
el : '#table1'
initialize:()->
@model.bind "render", @render
@tableId = "resultsTable#{@options.id}"
@inputId = "filterInput#{@options.id}"
@columns = @options.columns
render:()=>
console.log "EL"
console.log $(@el)
console.log @el
控制台中的console.log @el始终为undefined。我不知道为什么,我认为我正确地设置了this.el?是因为渲染是作为事件触发的结果而被调用吗?
newView.el
添加到DOM中。方法3也让清理变得非常容易,只需调用newView.remove()
一切都应该消失(当然,你需要在视图的remove
方法中添加解绑定调用)。 - mu is too shortrender
时,您将拥有您的el
:http://jsfiddle.net/ambiguous/tPY4V/1/ - mu is too short