繁体   English   中英

我如何在流星中使用铁路由器嵌套关卡?

[英]how i can do nested levels with iron-router in meteor?

我是铁路由器的新手,这是问题所在(下面给出的代码)

使用陨石和流星0.8.1

App.Router.map(function() {
  this.resource('post', { path: '/post/:post_id' }, function() {
    this.route('edit');
    this.resource('comments', function() {
      this.route('new');
    });
  });
});

这是在emberjs路由器中完美工作的情况,我如何使用Iron-router解决流星中这种类型的嵌套路由级别?

认为可以通过会话解决?

在路由器中

this.route("v", {onBeforeAction: function() {Session.set('uniqueId', this.params._id);}, path: "/v/:_id"});

在Template.v.events中

"click #v": function(event, target) {
event.preventDefault();

Accounts.verifyEmail(Session.get('uniqueId'), function(error) {
    if(error) throwError(error.reason); else Meteor.Router.to("/profile");
});

您是否要混合使用来自不同框架的代码? 我并不是您要尝试做的事情的完全替代者,但是如果您的路由器可以工作,并且您想访问模板中的数据,则应该使用模板数据上下文。

如果您的路线是这样定义的:

this.route('your.route', {path: '/yourroute/:_id'});

在路线的控制器中,您可以尝试以下操作:

YourTemplateController = RouteController.extend({
    waitOn: function () {
    },

    data: function () {
        return this.params._id;
    },

    action: function () {
        this.render();
    }
});

现在可以通过以下方式在模板事件中访问this.params._id

Template.YourTemplate.events({

    "click #v": function(event, template) {
        console.log(template.data);
    }

)};

请注意,事件对象的第二个参数是模板,而不是目标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM