Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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
Javascript 您如何确保您不';是否在backbone.js中使用历史记录创建两次模型?_Javascript_Routes_Backbone.js_History - Fatal编程技术网

Javascript 您如何确保您不';是否在backbone.js中使用历史记录创建两次模型?

Javascript 您如何确保您不';是否在backbone.js中使用历史记录创建两次模型?,javascript,routes,backbone.js,history,Javascript,Routes,Backbone.js,History,在我的路由器里我有 routes: { "create/:type": "create", // #create/modeltype "diagram/:id": "diagram", // #diagram/193 "": "list" // }, 然后我有了创建路线 create: function(type) { console.log("diagram create " + type.toUpperCase

在我的路由器里我有

routes: {
    "create/:type": "create",
    // #create/modeltype
    "diagram/:id": "diagram",
    // #diagram/193
    "": "list"
    //
    },
然后我有了创建路线

    create: function(type) {
        console.log("diagram create " + type.toUpperCase());

        var newDiagram = new Diagram({
            type: type.toUpperCase()
            });

        newDiagram.save({}, {
            success: function(model, response) {
                console.log("save diagram success");
                window.vnb.routers.workspace.navigate("diagram/" + model.get("id"), true);

            },
            error: function(model, response) {
                console.log("error");
                console.log(model);
                console.log(response);
            }
        });

    },

如果有人创建了一个模型,然后单击“上一步”,他们会创建另一个模型,我希望这种情况不会发生。

您可以将
newDiagram
变量设置为路由器上名为
diagram
的属性。然后,您可以在第一次调用create方法时实例化它,下面对create方法的调用可以使用该变量

这里有一个例子

create: function(type) {
    console.log("diagram create " + type.toUpperCase());

    if (this.diagram === undefined) {
        this.diagram = new Diagram({
          type: type.toUpperCase()
        });
    }

    this.diagram.save({}, {
        success: function(model, response) {
            console.log("save diagram success");
            window.vnb.routers.workspace.navigate("diagram/" + model.get("id"), true);

        },
        error: function(model, response) {
            console.log("error");
            console.log(model);
            console.log(response);
        }
    });

},

谢谢Paul,但这并不是我想要的,这意味着我永远无法创建新的图表。我只想从路由器历史堆栈中删除创建路由。