我创建了一个ajax上传组件,其中包含每个骨干视图的进度条,这是我的视图模板的外观。绑定并触发骨干事件到一个特定的视图
<script id="view-template-dropped-file" type="text/html">
<a><%=name %></a><span><%=fileSize%></span>
<div class="ui-progress-bar">
<div class="ui-progress"></div>
</div>
</script>
当我把文件放在我的拖放区域创建一个视图为每个文件这样
for (i = 0; i < files.length; i++) {
var view = new DroppedFileView({
model: new DroppedFile({
name: files[i].name,
fileSize: files[i].size
})
});
var $li = view.render().$el;
$('#droparea ul').append($li);
});
一些文件Added显示每个文件的进度条的下降区域。 http://cl.ly/Lf4v
现在当我按上传时,我需要分别显示每个文件的进度。
我试图做的是绑定到一个事件在我DroppedFileView这样
initialize: function() {
var app = myapp.app;
app.bind('showProgress', this._progress, this);
}
和_progress功能
_progress: function(percentComplete) {
this.$el.find('.ui-progress').animateProgress((percentComplete * 100), function() { }, 2000);
}
,这是我如何触发从下拉区域的事件查看
当然这不会工作,因为我听同样的showPro所有视图中的gress事件将导致所有进度条显示相同的进度。
那么,是否有可能将一个事件绑定到一个指定的视图,这样进度可以单独更新,或者事件不是一个好方法?
其实我有一个放置区的视图和每个放置文件的一个视图,所以我猜这个模型的触发器对我不起作用。我已经为此展示了我正在开发的代码。 http://jsfiddle.net/eLLmW/66/ – Marcus
@Marcus,更新了我的回答,评论太长了。只需$ 0.02 – jevakallio
感谢您的帮助! – Marcus