在我的骨干应用程序中,我有一个选择菜单,使用路径过滤列表中的一些员工,它由部门完成。
E.g。 localhost / #filter / HR 或 的本地主机/#滤波器/会计
routes: {
"filter/:type": "urlFilter"
},
urlFilter: function (type) {
this.directory.filterType = type;
this.directory.trigger("change:filterType");
},
然后在我看来:
filterByType: function () {
if (this.filterType === "all") {
this.collection.reset(contacts);
app.navigate("filter/all");
} else {
this.collection.reset(contacts, { silent: true });
var filterType = this.filterType,
filtered = _.filter(this.collection.models, function (item) {
return item.get("type").toLowerCase() === filterType;
});
this.collection.reset(filtered);
app.navigate("filter/" + filterType);
}
},
但是,如果您直接访问其中一个网址,则选择菜单会不同步。
如何使选择与路线保持同步,其中选项值等于全部,人力资源和会计?
答案 0 :(得分:0)
将onchange处理程序放到列表中,并相应地更新URL(通过添加当前列表项的参数值)。更改网址时防止重新加载页面(google for it)。使用参数(即页面加载时)打开URL时,请确保更新当前列表项。