【问题标题】:link helpers properties to a div in Meteor将助手属性链接到 Meteor 中的 div
【发布时间】:2015-06-12 16:04:40
【问题描述】:

我实际上正在为一些简单的事情而苦苦挣扎;我想让我的助手在模板“fullArticle”上执行。

我尝试将 tempate 变形为 div,但在 div 上使用 name HTML 属性是不正确的。所以我尝试了一个类,控制台上仍然没有。

我可以在我的助手上写这样的东西:

'.article': function(){...}

或者更好,使用数据 HTML 属性

'[data-name="article"]': function(){...}

甚至直接定位模板名称(我在下面的代码中尝试做的事情:

fullArticle: function(){...}

fullArticle.html

<template name="fullArticle">
    <div class="article">
    {{_id}}
    <h1>Full article {{title}}</h1>
    <h3><small>{{date}}</small></h3>
    <p>{{content}}</p>
    </div>
</template>

fullArticle.js

if (Meteor.isClient){
  Template.fullArticle.helpers({
    fullArticle: function(){
      console.log("id is : " + this._id);
      //return Articles.findOne({_id: id});
    }
  });
}

routes.js

Router.route(':categoryName/article/:_id', function(){
    this.render('fullArticle', {
        data: function(){
            return {_id: this.params._id};
        }
    });
});

您知道如何让它发挥作用,或提出更好的解决方案吗?

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

    您可以在下面找到typical schema 如何从数据库中获取数据并在客户端显示。请以此为灵感。

    在服务器端创建发布函数:

    Meteor.publish('article',function(articleId){
      check(articleId, String);
      return Articles.find({_id:articleId})
    })
    

    routes.js

    Router.route(':categoryName/article/:_id',{
       name:'full.article',
       template: 'fullArticle',
       waitOn: function () {
        return Meteor.subscribe( 'article', this.params._id ),
       },
       data : function(){
         return Articles.findOne( { _id: this.params._id } ) 
       }
    })
    

    fullArticle.html

    <template name="fullArticle">
        <div class="article">
        {{_id}}
        <h1>Full article {{title}}</h1>
        <h3><small>{{date}}</small></h3>
        <p>{{content}}</p>
        </div>
    </template>
    

    【讨论】:

    • 从路由访问数据库是个好习惯吗?从助手那里做不是更好吗?谢谢你的回答顺便说一句
    • Kuba 的解决方案是可靠的,让路由返回实际文档,而不仅仅是_id。在大多数情况下,使用模板助手返回数据也很好,但是当你有一个带有 _id 参数的路由时,更常见的是在路由的 data: 函数中执行此操作。
    猜你喜欢
    • 2015-12-10
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 2013-01-30
    • 2019-04-07
    • 1970-01-01
    • 2015-12-01
    • 2015-01-29
    相关资源
    最近更新 更多