2015-07-19 97 views
0

所以我有這個數據上下文,我抓住,並不能弄清楚如何將它傳遞給模板。任何人都可以展示或指導我舉個例子嗎?我是否需要一個模板幫助程序,我將再次訪問數據庫以檢索數據,因爲我已經在鐵路路由器中擁有數據上下文...?將數據從鐵路由器DATA功能傳輸到模板

ROUTER.js

Router.route("/employer", { 
    name:"employer", 
    template:"employer", 
    layoutTemplate:'employerLayout', 
    // controller:"ProfileController", 
    data: function(){ 
     var currentuser = Meteor.userId(); 
     Meteor.call("getEmployer", currentuser, function(error, result){ 
     if(error){ 
      console.log("error", error); 
     } 
     if(result){ 
      return result; 
     } 
     }); 

    }, 

EMPLYER.html

<template name="employer"> 
    <h1> Employer</h1> 

    <h2>{{result}}</h2> 

</template> 

COLLECTION

meteor:PRIMARY> db.employer.find().pretty() 
{ 
    "_id" : "qCFGZa4ogc5LR56PL", 
    "createdAt" : ISODate("2015-07-18T13:19:16.098Z"), 
    "user" : "owfJ4ozrfsp26o8G4" 
} 

比如我想寫出

<template name="employer"> 
     <h1> Employer</h1> 

     <h2>{{_id}}</h2> 
     <h2>{{createdAt}}</h2> 
     <h2>{{user}}</h2> 


    </template> 

回答

2

data鉤子需要同步,所以你不能從它內部調用一個方法(並期望得到一個結果)。但是,您可以輕鬆地將此責任移交給您的模板,並提供this question的任何答案。或者,你可以嘗試調用從data鉤內reactive-method - 我從來沒有真正做到這一點,但它似乎像它可以工作:

data: function() { 
    var currentuser = Meteor.userId(); 
    return ReactiveMethod.call('getEmployer', currentUser); 
} 

附註 - 如果事實證明你總是叫getEmployer只爲當前用戶,則不需要通過Meteor.userId(),因爲方法可以使用this.userId

相關問題