Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何正确发出将在主干中渲染视图的路由_Node.js_Backbone.js_Underscore.js - Fatal编程技术网

Node.js 如何正确发出将在主干中渲染视图的路由

Node.js 如何正确发出将在主干中渲染视图的路由,node.js,backbone.js,underscore.js,Node.js,Backbone.js,Underscore.js,我设置了一个主干应用程序,可以在表中列出mongodb对象的集合,每个对象旁边都有一个编辑按钮。单击“编辑”按钮时,editItem.View将调用其render()函数。然后,用户可以更改值并点击保存按钮。“保存”按钮可以将新值保存到数据库中,但是在save()成功回调函数中,我尝试再次呈现列表视图,以便可以查看新值。这同样有效,但由于我以编程方式呈现视图,而不是使用路由,因此地址栏中的URL仍然显示: http://localhost:3000/#/edit/5199180b2908cbb6

我设置了一个主干应用程序,可以在表中列出mongodb对象的集合,每个对象旁边都有一个编辑按钮。单击“编辑”按钮时,editItem.View将调用其render()函数。然后,用户可以更改值并点击保存按钮。“保存”按钮可以将新值保存到数据库中,但是在save()成功回调函数中,我尝试再次呈现列表视图,以便可以查看新值。这同样有效,但由于我以编程方式呈现视图,而不是使用路由,因此地址栏中的URL仍然显示:

http://localhost:3000/#/edit/5199180b2908cbb60b000003
但我真的想让它回到

http://localhost:3000/
这只是所有项目的列表视图

除此之外,如果我尝试单击同一项目的“编辑”按钮,则不会再发生任何事情,但如果我单击“编辑到任何其他项目”,则一切正常。因此,由于某些原因,上次编辑的项目无法再次编辑。这是我在单击save按钮时发出的save函数的代码

save :function(e){
                    console.log("Saving skill");
                    var btn = e.target;

                    var id = $('#skillId').val();
                    var obj = {
                        name: $('#skillName').val(),
                        value: $('#skillValue').val()};

                    var updatedSkill = new SkillModel({"_id":id});
                    updatedSkill.fetch();
                    updatedSkill.set(obj);
                    updatedSkill.save(null,
                    {
                        success: function (model, response) {
                            console.log("success");
                            skillsview.render();
                        },
                        error: function (model, response) {
                            console.log("error");
                        }
                    });

                    return true;
                }

重新发射这样的视图的正确方法是什么?

我想出来了。这真的很简单,只是需要:

app_router.navigate('/', {trigger:true});
而不是:

skillsview.render();