Several events triggered when viewing a view

I am creating an application using Backbone.js, however I encountered a problem that I cannot fix very early.

I have a simple list / detail view setting right now, but every time I render a detailed view, my events get worse. For example, show two detailed views, and clicking on the link will double-click.

My opinion looks like this (written in CoffeeScript):

#
# Project List View
#
class ProjectListView extends Backbone.View

  el: $("#projectList")

events : {
  "click #addProject" : "createNewProject"
}

initialize : ->
  @template = _.template(app.projectListView)
  _.bindAll(this, "render", "createNewProject")
  @render()

createNewProject : (e) ->
  e.preventDefault()
  e.stopPropagation()
  tempProject = Projects.create({
    title : 'Test Project'
    description : ''
    browserDefault : 12
    lineHeight : 21
  })

render : =>
  $(@el).html(@template())
  @delegateEvents()
  return @

It’s obvious that my events are over and I don’t get click-firing. What am I missing here?

+3
source share
2 answers

The code you pasted does not look right. Is it like it was originally?

_.bindAll. => ( ->)

@delegateEvents, . , :

class ProjectListView extends Backbone.View

  el: $("#projectList")

  events:
    "click #addProject" : "createNewProject"

  initialize: =>
    @template = _.template(app.projectListView)
    @render()

  createNewProject: (e) =>
    e.preventDefault()
    e.stopPropagation()
    tempProject = Projects.create
      title: 'Test Project'
      description: ''
      browserDefault: 12
      lineHeight: 21

  render: =>
    @el.html @template()
    @
+3

. ( delegateEvents) . ( , , ). deleteEvents .

, @el jQuery, .

2 ? ...

+2

Source: https://habr.com/ru/post/1792177/


All Articles