gpt4 book ai didi

javascript - backbone.js根据ajax请求的结果采取不同的操作

转载 作者:行者123 更新时间:2023-12-02 18:55:56 24 4
gpt4 key购买 nike

我有一个主干应用程序,它从 url 读取 svn 文件路径,然后“ls”是它给出的路径。通常,它只是枚举表中 ls 的结果。但我想做的是检查路径是否实际上仅对应于特定文件,在这种情况下,改为获取并显示文件的内容。

执行此操作的最佳 Backbone 惯用方式是什么?现在,在我所说的目录模型的解析函数中,我正在考虑做这样的事情:

  parse: function(response, options) {
if (response.length == 1 && response[0].type == "file") {
// what to do here?
}
this.get('entries').reset(response);
$("#indicator").hide();
$('#directory-contents').show();
this.trigger('change');
return {};
},

所以我很想发出一个ajax请求来获取这里的文件内容(即,在//这里做什么?),但是a)直接发出一个ajax请求我自己似乎不太好,b)我觉得我正在将两个模型混合在一起。现在我的 DirectoryView 可能必须检查某种标志来判断它是否实际上正在渲染一个目录,或者只是一个特定的文件。

有什么更好的方法来处理这个问题吗?

最佳答案

好的,在查看评论并进一步了解您的域之后,我建议采用以下方法:

  • 创建一个代表文件系统节点(如果愿意的话,可以使用 inode )的 FSEntry 模型。关键是可以代表目录或文件
  • FSEntry 应具有 type 字符串属性,可以是“目录”、"file"、“符号链接(symbolic link)”等
  • 基本的 fsEntry.fetch() 应该只加载元数据,包括 type 字段。
  • 它可以响应模型事件而渲染的 View 。根据模型实例的类型,进行适当的渲染(或者如果您愿意,可以为 View 主体交换不同的模板)
  • 如果type是'file',让 View 调用fsEntry.fetchContent()并响应相应的change:content事件来渲染文件内容<
  • 您稍后可以向模型添加逻辑来缓存 content 数据,并且如果缓存中有新数据,则不重新获取它,但只有在所有功能正确后才应添加这种优化.

根据您的代码示例附注:不要在模型或集合代码中操作 DOM!这是 MV* 捂脸失败。

关于javascript - backbone.js根据ajax请求的结果采取不同的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15367076/

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