我在以下backbone.js控制器的索引操作中使用fetch:
App.Controllers.PlanMembers = Backbone.Controller.extend({
routes: {
"": "index"
},
index: function () {
var planMembers = new App.Collections.PlanMembers();
planMembers.fetch({
success: function () {
var recoveryTeam = planMembers.select(function (planMember) {
return planMember.get("TeamMemberRole") == "RecoveryTeam";
});
var otherMembers = planMembers.select(function (planMember) {
return planMember.get("TeamMemberRole") == "Other";
});
new App.Views.Index({ collection: { name: "Team", members: recoveryTeam }, el: $('#recoveryTeam') });
new App.Views.Index({ collection: { name: "Team", members: otherMembers }, el: $('#otherTeam') });
},
error: function () {
alert('failure');
showErrorMessage("Error loading planMembers.");
}
});
}
});
问题是结果被缓存。它不会获取数据库更改。有没有办法告诉backbone.js不要缓存结果?
我知道我可以覆盖集合的 url 并附加时间戳,但我正在寻找比这更干净的东西。
这通常是 IE 上的问题,backbone 与此无关。您必须转到 jQuery ajax 调用并查看文档。 Backbone 使用 jquery ajax 作为其同步方法。你可以这样做来强制所有浏览器上的 ajax 调用:
$.ajaxSetup({ cache: false });
http://api.jquery.com/jQuery.ajaxSetup/ http://api.jquery.com/jQuery.ajaxSetup/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)