我正在开发一个应用程序,其中有大量项目,通过ember-data从服务器加载。此列表可以按日期等不同字段进行过滤。
首次加载此路线时,会按日期过滤:它仅加载当前年份的项目。但是,用户可以更改这些过滤器。
当你转换到另一条路线并回来时,可见的过滤器与你离开时相同,ember似乎记得它们。但是,由于模型是在控制器存在且过滤器可用之前由路径加载的,因此它会加载所有当前年份的模型。
因此,结果是用户看到了所有当前年度项目的列表,以及一组可能不匹配的过滤器。
我喜欢的是,如果已经可用,则不重新加载模型的路线,以节省时间和网络;但任何解决方案都将受到赞赏。
答案 0 :(得分:0)
您可以将GET移动到控制器上,如果控制器已经存在,则路由更改时不会重新生成控制器
从beforeModel中的控制器中获取最后选择的过滤器选项:...或model:...方法通过查询加载数据(如果可能)
如果您确定已加载所有数据,请使用peekRecords以避免新的网络请求