gpt4 book ai didi

backbone.js - 在 View 渲染时触发多个事件

转载 作者:行者123 更新时间:2023-12-01 11:57:58 24 4
gpt4 key购买 nike

我正在使用 Backbone.js 构建一个应用程序,但是我遇到了一个我无法尽早解决的问题。

我现在有一个简单的列表/详细 View 设置,但每次渲染详细 View 时,我的事件都是复杂的。例如,显示两个详细 View 并单击一个链接将导致它被单击两次。

我的 View 看起来像这样(用 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 @

显然,事件已经结束,我没有触发任何点击事件。我在这里缺少什么?

最佳答案

您粘贴的代码似乎没有正确缩进。原来是这样吗?

您不需要 _.bindAll 行。相反,只需使用 => 来定义您的方法(而不是 ->)

我按照 Julien 的建议,进行了一些风格上的更改并删除了额外的 @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()
@

关于backbone.js - 在 View 渲染时触发多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5001872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com