0

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

例如,我在页面#home中,我要去页面#message(使用功能导航,或直接通过更改# 之后的 URL),但我想保留页面模型中的用户数据#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;

    }
);

谢谢。

4

2 回答 2

0

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

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

于 2013-05-22T17:43:14.300 回答
0

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

于 2013-05-22T17:42:37.710 回答