【问题标题】:Temporary Routes Using Meteor & Iron: Router?使用 Meteor & Iron 的临时路由:路由器?
【发布时间】:2016-06-03 13:40:58
【问题描述】:

是否可以使用 Iron: Router 在 Meteor 中创建临时路由?

如何应用:当用户提出问题时,他们将被重定向到带有我提供的自定义参数的聊天室。当用户在聊天室结束并离开时,我希望这条路线被销毁。

例如:/chat/[我设置的自定义参数]

【问题讨论】:

  • 如果您向我们展示您尝试过的代码,将会很有帮助。到目前为止,我有以下建议。您可以使用集合来存储所有活动的聊天 ID。当用户离开聊天时,您可以从活动聊天集合中删除该聊天。使用 iron-router 为 /chat/:id 创建路由。当用户访问 /chat/:id 路由时,您可以订阅活动聊天集合并查看 id 是否在集合中。如果它不在活动聊天集合中,则显示不同的模板或重定向到不同的 url。

标签: javascript node.js meteor routes iron-router


【解决方案1】:

在您的路由中使用: 来表示一个可以更改但是强制性的值(即/chatroom/12345 可以工作,但/chatroom 不会)

Router.route('/chatroom/:chatId', {
    name: 'chatroom',
    template: 'chatroom',
    layoutTemplate:"myLayout",
    data: function () {
        return ChatRoomData.findOne({_id:this.params.chatId});
    }
});

或者,您也可以通过添加? 来使传入的参数成为可选

Router.route('/chatroom/:chatId?', {
    name: 'chatroom',
    template: 'chatroom',
    layoutTemplate:"myLayout",
    onBeforeAction: function () {
        if (!!this.params.chatId)
           //Do Something with the chatId
           this.render('specificChatRoom', {
              data: function () {
                  return ChatRoomData.findOne({_id:this.params.chatId});
              }
           });
        else
           //Do Something else
           this.render('mainChatRoom');

        this.next();
    }
});

【讨论】:

    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 2013-08-14
    • 2014-12-02
    • 1970-01-01
    • 2015-10-16
    • 2015-08-22
    • 1970-01-01
    • 2016-03-27
    相关资源
    最近更新 更多