[英]Backbone.js's Ajax call different behavior in Chrome and Firefox
[英]backbone.js take different action based on result of ajax request
我有一个骨干应用程序从URL中读取svn文件路径,然后“ls”是它给出的路径。 通常,它只是枚举表中ls的结果。 但我想要做的是检查路径是否实际上只对应于一个特定的文件,在这种情况下,取而代之的是获取并显示文件的内容。
这样做的主要方法是什么? 现在在我称之为目录模型的解析函数中,我正在考虑做这样的事情:
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请求来获取这里的文件内容(即,在// what to do here?
),但是a)直接发一个ajax请求我自己似乎不那么好,而且b)我我觉得我把两个模型合二为一。 现在我的DirectoryView可能需要检查某种标志,以确定它是否实际呈现目录,或只是一个特定文件。
有什么想法可以更好地处理这个问题吗?
好的,在仔细阅读评论和理解您的域名之后,我建议采用以下方法:
type
字符串属性,可以是'directory','file','symlink'等 type
字段。 type
,适当渲染(或者,如果您愿意,可以在视图主体的不同模板中交换) type
是'file',请让视图调用fsEntry.fetchContent()并响应相应的change:content
事件以呈现文件内容 content
数据,如果缓存中有新数据,则不会重新获取content
数据,但这是在所有功能正确后才应添加的优化。 基于代码示例的旁注:不要在Model或Collection代码中操作DOM! 这是MV * facepalm失败。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.