【发布时间】:2013-04-17 22:23:43
【问题描述】:
所以我有两种观点。一个绑定到集合的“父”视图和多个绑定到集合中各个模型的子视图。
class ResultTable extends Backbone.View
el:"body"
initialize:()->
@collection.bind "add", @add
add:(model)->
new ModelView({model:model})
class ModelView extends Backbone.View
el: "#resultsTableList"
initialize:()=>
@model.on "selected",@select
@render()
render:()=>
#append template
select:(e)=>
e.preventDefault()
console.log(@model)
events:
'click' : 'select'
因此,当我单击其中一个列表元素时,所有模型视图的选择功能都会被触发。我以为我构建这个的方式只有被点击的特定模型才会出现。这是怎么回事?
模板 HTML-
<div id="resultsTableContainer" class="resultsContainer">
<ul id="resultsTableList">
</ul>
这适用于每个型号-
<li class="result">
{{ ipAddress }}
</li>
【问题讨论】:
-
有意思,可以分享一下你的模板HTML吗?会不会是 e.stopPropagation vs e.preventDefault 的事情?这是所有的代码吗?像你一样,我错过了原因。 p.s.这是原始缩进吗?看起来您的选择功能属于集合视图而不是子视图(我认为咖啡脚本对它很敏感,但我不是咖啡脚本用户)
-
所以我认为你可以假设缩进是好的。我不认为这是问题所在。还有一部分(我不认为)是问题,但我会发布它。还发布模板html
-
hm.. 你在哪里关闭 ?不确定它是否相关,但它可能是......当你做“on”时,你似乎没有将“this”作为上下文传递,所以上下文将是你的模型,而不是你对“@model.on”的看法选中",@select`
-
所以当我点击页面上的其他地方时,选择功能被触发,这意味着由于某种原因视图彼此重叠并分布在页面上?我不知道页面上的视图是否可以在几何上受到限制。
-
Eran-对不起,我很愚蠢-您能改写您的评论吗?
标签: javascript backbone.js coffeescript