簡體   English   中英

骨干:重定向后視圖不正確

[英]Backbone: not correct view after redirect

我是Backbone的新手,從知名開始就遇到了一個問題,想知道如何用主視圖的意外行為解決問題。 1.我啟動頁面,看起來不錯。 2.我單擊按鈕可將我引向不同的視圖,並向我展示它。 3.單擊“后退”按鈕,我看到一個空白頁,但是在DOM中,我可以從以前的視圖中找到一些元素,但看不到。

這是我的路由器代碼的一部分(我希望這足夠了):

home: function () {
    if (!app.leftMenuView) {
        app.leftMenuView = new app.views.LeftMenuView({
            el: $("#left_menu")
        });
    } else {
        app.leftMenuView.delegateEvents();
    }
    if (!app.homeView) {
        app.homeView = new app.views.HomeView({
            el: $("#main_container")
        });
    } else {
        app.homeView.delegateEvents();
    }
    if (!app.topMenuView) {
        app.topMenuView = new app.views.topMenuView({
            el: $("#top_menu")
        });
    } else {
        app.topMenuView.delegateEvents();
    }
},
search: function () {
    app.searchView = new app.views.SearchView({
        el: $("body")
    });
},

一個主要的html文件:

<body>
     <div id="search-div"></div>
     ...
</body>

主視圖:

app.views.HomeView = Backbone.View.extend({
    initialize: function () {
        this.render()
    },
    render: function () {
        var self = this;
        $.get('/template/home.html', function (data) {
            self.$el.html(_.template(data)({}));
        });
        return this;
    },
});

一個SearchView:

app.views.SearchView = Backbone.View.extend({
    events: {
        "click #left-arrow-icon": "toMainPage"
    },
    initialize: function () {
        this.render();
    },
    render: function () {
        var self = this;
        $.get('/template/searchView.html', function (data) {
            self.$el.html(_.template(data));
        });
        return this;
    },
    toMainPage: function () {
        Backbone.history.history.back();
    },
});

在提供的示例中,搜索視圖(如果呈現)將破壞主要的html文件內容,因為提供的元素直接是正文。 無論如何,如果您轉到搜索視圖,則您的主頁將被破壞或無法再呈現。

我建議改善布局管理:

  • 每個視圖單獨的元素
  • 根據路線顯示/隱藏根元素

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM