【发布时间】:2015-04-06 15:45:48
【问题描述】:
我正在使用 Marionette/Backbone 开发一个应用程序。该应用程序需要通过 AJAX 调用上传文件(有这个工作)。我想向用户反馈他们何时能够选择上传的文件并继续修改它。当我有 Model 和 ItemView 时,我不知道跟踪进度的最佳做法是什么。我可以把它放在属性中,但据我所知,当它同步到服务器时,所有属性都会保存到数据库中。但是 ItemView 需要能够听取模型何时完成,我只是不确定何时何地这样做。
我已经解决了一个更基本的解决方案,但它需要在 Marionette/Backbone 框架内工作。
ItemView 的相关部分
modelEvents: {
'change': 'fieldsChanged'
},
fieldsChanged: function() {
this.render();
},
【问题讨论】:
-
向项目视图添加属性怎么样?它们是视图与其模型之间的一对一腐蚀?
-
向项目视图添加属性怎么样?它们是视图与其模型之间的一对一腐蚀吗?顺便说一句,您可以通过监听模型的
request事件来监听模型请求何时开始,以及通过监听其sync事件返回。 -
好吧,我不想保存这些信息。有没有一种方法可以让我忽略更新的字段,或者我设置它是否重要,因为它永远不会被保存?
-
可以直接在模型上设置属性。比如
model.progress = 'loaded'。调用model.set()意味着您正在更新数据库的模型表示。也就是说,如果您使用.set(),您可以在调用.save()之前对模型进行预处理,然后手动删除progress 属性。 -
如果我想在 ajax 上传的项目视图中有一个进度条。也许是我对 Javascript 的无知阻止了我。但是我想做的是设置一个变量,当它更新时,我会重新渲染 itemview。这不是处理这个问题的正确方法吗?
标签: javascript ajax backbone.js marionette