使用BackboneJS将数据从视图保留到另一个视图

时间:2013-05-22 17:26:14

标签: javascript backbone.js local-storage

我想使用BackboneJS将视图中的信息保存到另一个视图。

例如,我在页面#home中,我将转到页面#message(使用功能导航,或直接在#后更改网址) ),但我希望保留页面#home模型中的用户数据,并将其显示在页面#message中。

模型由用户(使用表单)设置,而不是从服务器/数据库设置。

我真的不知道保留这些信息的最佳解决方案是什么。

一些代码:

view1.js:

define([
    'backbone',
    'underscore',
    'app',
    'text!../../templates/template1.html',
    '../../models/model1',
    ],
    function (Backbone, _, app, myTemplate1, myModel1) {

        'use strict';

        var myView1 = Backbone.View.extend({

            model: new myModel1(),
            template: myTemplate1,
            initialize: function() {
                //
            }
        });
        return myView1;

    }
);

view2.js:

define([
    'backbone',
    'underscore',
    'app',
    'text!../../templates/template2.html',
    '../../models/model2',
    ],
    function (Backbone, _, app, myTemplate2, myModel2) {

        'use strict';

        var myView2 = Backbone.View.extend({

            model: new myModel2(),
            template: myTemplate2,
            initialize: function() {
                //How to access data from the model1 here???
            }
        });
        return myView2;

    }
);

感谢。

2 个答案:

答案 0 :(得分:0)

让路由器从view1获取模型(或许添加一个view。getModel()`方法)并将其作为构造函数选项传递给view2。

答案 1 :(得分:0)

我建议您使用appRouter将模型传递给view1,但要在approuter中本地“存储”模型。

然后,当您转到#message视图时,您也可以将模型传递到那里(或者如果它还不存在则创建一个)。