繁体   English   中英

您如何确保不会在骨干网js中使用历史记录来两次创建模型?

[英]How do you ensure you don't create model twice using history in backbone.js?

在我的路由器中

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);
        }
    });

},

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM