Backbone.js 如何在modelchange之后停止渲染视图?

Backbone.js 如何在modelchange之后停止渲染视图?,backbone.js,Backbone.js,我有两个模型,一个叫profile,一个叫profilelist 一个视图显示配置文件列表,称为profileListView,当您单击一个配置文件时,它将加载一个新视图profileDetailsView,您可以在其中编辑其详细信息 现在,当我更改此配置文件Details视图中的属性并执行model.change时,profileListView会重新渲染,因为它显然会侦听其模型。 问题是视图重新呈现,但URL保持不变,指向我更改的配置文件的详细视图,这会扰乱网站的导航 因此,我想停止prof

我有两个模型,一个叫profile,一个叫profilelist

一个视图显示配置文件列表,称为profileListView,当您单击一个配置文件时,它将加载一个新视图profileDetailsView,您可以在其中编辑其详细信息

现在,当我更改此配置文件Details视图中的属性并执行model.change时,profileListView会重新渲染,因为它显然会侦听其模型。 问题是视图重新呈现,但URL保持不变,指向我更改的配置文件的详细视图,这会扰乱网站的导航

因此,我想停止profileListView的自动重新排序,然后手动“重定向”到listview

我如何才能做到这一点?

您可能确实希望视图重新渲染,对吗?你只想url也改变一下。因此,一种选择是让路由器在模型上绑定一个处理程序,然后让它更新URL—类似于:

model.on('change', function(model) {
    var url = getTheCorrectUrl(model);
    router.navigate(url);
});

谢谢兄弟,实际上我必须把它放在model.save的成功中,否则它会在保存模型之前重新加载页面,最终不会保存模型。此外,我还必须使用router.saveLocation,而不是导航,因为显然该站点使用的是旧版本的主干网(0.3.3)