0
我有一个骨干应用程序,它从url中读取svn文件路径,然后“ls”是它给出的路径。通常情况下,它只是列举了表中ls的结果。但是我想要做的是检查路径是否实际上只对应一个特定的文件,在这种情况下,取而代之地显示文件的内容。backbone.js根据ajax请求的结果采取不同的行动
这样做会是一个很好的主干惯用方式吗?现在在我所称为目录模型解析功能,我想这样做是这样的:
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可能需要检查某种标志来判断它是实际呈现一个目录还是一个特定的文件。
有更好的方法来处理这个问题的任何想法?
我没有计划在模型中操作DOM,但如果我想要文件的实际内容,我将不得不做出单独的ajax请求。有没有更好的办法可以做,而不仅仅是在上面的'parse'函数中有一个'$ .ajax(...)'? – Alec 2013-03-12 17:09:41
那么,你可以设置一个事件处理程序,以便在'change:type'事件处理时,如果文件内容尚未加载,那么可以在该点处获取它。你也可以创建一个独立的'loadContent'方法来让你的视图可以调用。 – 2013-03-12 17:26:35
我认为这是你有一个FSEntry与2组数据:元数据和文件内容。遵循骨架模式,其中'fetch'获取元数据,并制作另一个加载内容的'fetchContent'方法。一旦元数据到达,我不喜欢模型自动获取内容的想法,尽管您可以这样做。我宁愿让一个控制器或视图告诉模型来获取内容。 – 2013-03-12 17:29:56