停止backbone.js从触发的默认路由

时间:2011-05-31 08:22:01

标签: backbone.js

我有以下backbone.js控制器:

App.Controllers.PlanMembers = Backbone.Controller.extend({
    routes: {
        "message/:messageType": "sendMessage",
        "": "index"
    },

    sendMessage: function (messageType) {
        alert(messageType);
    },

    index: function () {
        alert('should not get here');
    }
});

我希望在第一次加载页面时执行索引操作,我还有另一条路由发送到sendMessage操作,并且请求从下面的链接路由正常:

<a class="sms" href="#message/sms" ><img src="/img/buttons/transmit_blue.gif" /></a>

问题是,在执行sendMessage操作之后,它再次触发索引操作,这不是我需要的。

有谁能告诉我如何确保只触发sendMessage路由?

2 个答案:

答案 0 :(得分:2)

事实证明这是一个已知的issue

This解决了这个问题。

老实说我以为我疯了!

答案 1 :(得分:0)

您添加的代码对我有用,但我不知道您的代码中是否还有其他内容可能导致此问题。您是否可以根据收到的DOM事件从视图路由到此操作?如果是这样,缺少preventDefault语句有时会导致这种双重呈现(路由)行为。因此,或许可以在您的问题中添加一些其他背景/细节。