从Backbone中的另一个视图调用新视图

时间:2015-02-26 23:52:08

标签: javascript backbone.js backbone-views

我是JS和Mongo / Mongoose / Express / Node / Backbone / Require堆栈的完全新手......所以有很多需要学习的内容,我完全有可能在这里错过了一些东西。但是,如果保存操作成功,我试图存储提交表单的结果,然后将用户移动到另一个视图,因此我的View看起来像这样:

define(['CoreView', 'text!templates/profile.html', 'models/Account'],

function(CoreView, profileTemplate, Account) {
    var profileView = CoreView.extend({
        el:         $('#content'),

        events:     {'submit form': 'update'},

        template:   _.template(profileTemplate),

        update:     function() {
                        /* 
                         * Gather the form data... then:
                         */
                        $.post('/accounts/' + this.model.get('_id'), 
                            {data: formData},
                            function(response) {
                                if (response == 'OK') {
                                    $.get('/#index');  // NO CHANGE??? 
                                    } else {
                                    console.err('Save Failed :(');
                                    }
                                });
                            return false;
                            },


        render:         function() {
                            if (this.model.get('_id') !== 'me') {
                                this.$el.html(this.template(this.model.toJSON()));
                                }
                            return this;
                            }
        });

return profileView;
});

现在很可能我错过了路由中的一些机制,我可以指定这类事情,任何关于为什么这不起作用或更好的解决方案的建议都是受欢迎的。

1 个答案:

答案 0 :(得分:0)

$.get()发出页面的GET请求 - 它不会对“将用户移动到其他视图”做任何事情。为此,您可以使用:

document.location.href = /#index`

如果您有Backbone.Router或类似的话,或者是更好的解决方案:

router.navigate('index')