0

我有用户使用 Twitter 登录 Meteor 应用程序。我想使用 Iron Router 为他们创建一个个人资料页面路由,该路由引用他们的 Twitter 屏幕名称。

我不知道应该用什么替换下面的 Iron Router 代码部分(我的文档:slug中没有属性)。sluguser

this.route('expertPage', {
path: '/profile/:slug',
data: function() { return Meteor.users.findOne({"services.twitter.screenName": this.params.slug}); }
});
4

1 回答 1

3

首先,您必须将 slug 作为键值对提供,即模板助手中的对象:

userScreenName = function() {
  return Meteor.user().services.twitter.screenName;
}

Template.profileLink.helpers({
  slugObject: function () {
    return {'slug': userScreenName()};
  },
  screenName: function () {
    return userScreenName();
  }
});

您现在可以通过使用将其提供给 pathFor 助手

a) 带with

<template name="profileLink">
  <a href="{{#with slugObject}}{{pathFor 'userProfile'}}{{/with}}">{{screenName}}</a>
</template>

b) 直接用作参数

<template name="profileLink">
  <a href="{{pathFor 'userProfile' slugObject}}">{{screenName}}</a>
</template>
于 2014-02-14T18:42:30.307 回答