MeteorJs:返回数据铁:路由器

时间:2015-07-23 21:20:51

标签: meteor iron-router

铁路由器返回数据在模板中,但我无法使用它。

例如,我有db with jobs,其中每个作业都有position(例如jobs.position):

ExistJobPostController = RouteController.extend({
  layoutTemplate: 'existJob',
  data:function() {return Posts.findOne(this.params._id); }
})
Router.map(function() {
  this.route('existJob', {    
    path: '/jobs/:_id',
    controller: ExistJobPostController,
  });
});
<template name="existJob">      
  {{position}}
</template>

没有任何反应,我认为这是我的错,但我真的无法理解如何解决这个问题。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

首先应检查是否在模板数据上下文中设置了正确的数据。以下是如何设置数据上下文以及如何从不同位置访问数据的快速总结:

Router.map(function() {
  this.route('index', {    
    path: '/index',
    data: function(){
      var obj = {
        fname: "Tom",
        lname: "Smith"
      };
      return obj;
    }
  });
});

Template.index.onRendered(function(){
  console.log(this.data.fname);
});

Template.index.events({
  'click body': function(e, tmpl){
    console.log(tmpl.data.fname);
  }
});

Template.index.helpers({
  lastName: function(){
    return this.lname;
  }
});

<template name="index">

  You have to use `this` when directly accessing template data from spacebars.
  {{this.firstName}}

  The following comes from Template.index.helpers:
  {{lastName}}

</template>