簡體   English   中英

PreventDefault事件在主干視圖中不起作用

[英]PreventDefault event not working in Backbone view

我正在從輕量級django中學習Backbone.js,並且無法從觸發默認事件中獲取以下功能。

下面是我的按鈕的HTML

<script type="text/html" id="header-template">
    <span class="title">Scrum Board Example</span>
    <% if (authenticated ) { %>
        <nav>
            <a href="/" class="button">Your Sprints</a>
            <a href="#" class="logout">Logout</a>
        </nav>
    <% } %>
</script>

這是我的骨干觀點

var HeaderView = TemplateView.extend({
    tagName: 'header',
    templateName: '#header-template',
    events: {
        'click a.logout': 'logout'
    },
    getContext: function () {
        return {authenticated: app.session.authenticated()};
    },
    logout: function (event) {
        event.preventDefault();
        console.log('clicked');
        app.session.delete();
        window.location = '/';
    }
});

每當我單擊a href按鈕時,它似乎都不會觸發我的視圖模型中的注銷功能。

我在其他地方出錯嗎?

謝謝,。 J

如果使用preventDefault(),則沒有理由使用href。

<a class="button">Your Sprints</a>

但是,如果使用window.location ='/',為什么要使用preventDefault。

此外,將回調函數用於刪除功能可能很酷。

var callback = window.location = '/';
app.session.delete(callback);

在app.session.delete中:

app.session.delete = function(callback) {
    // do stuff
   if(callback) {
       callback();
   }
}

暫無
暫無

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

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