如何使用sammy.js订阅"route"活动?



我使用sammy.js进行导航,我必须处理更改链接后发生的事件。例如,用户单击"#/联系人"链接,因此,在成功导航后,我希望触发我的事件。我找到了"after"属性并尝试插入此代码:

this.after('#/contact', function () {
    //my code
});

但它没有执行。我做错了什么?

事实上,问题来自以下情况:

我有一个包含 2 个选项卡的页面:主页和联系人。联系人包含谷歌地图。

如果用户首先转到联系人,谷歌地图已正确加载,

但如果用户进入"主页"选项卡,然后切换到"联系人"选项卡,则谷歌地图未正确加载,我只能在左上角看到一小块地图。

有什么建议吗?

提前谢谢你!

我建议使用自定义事件来处理这个问题:

var app = $.sammy(function() {
    this.get('#/contact', function() {
        this.trigger('myEvent', { myData: 'This a contact!' });
    });
});

或者,如果要侦听已运行的所有路由,请尝试:

this.bind('run-route', function() {
    console.log("I got routed");
}

如果我理解正确,你只需要这样做:

location.hash = "contact";

并且路由事件将触发。

相关内容

  • 没有找到相关文章

最新更新