如何在 meteorJs 中调用服务端方法时查看模板中的数据



我在 Meteor 中使用了服务器端方法,从集合中获取数据。我正在从客户端调用服务器端方法。

服务器的方法成功返回数据,当我console.log(success)我在回调函数中获取了数据。但问题是我无法在模板中打印这些数据。我不知道出了什么问题。如果有人对此有想法,请告诉我。

下面我展示了我的代码。

/项目/服务器/新.js

Meteor.methods({
getResponseFromServer:function(latlong){
lng = parseFloat(latlong.lng);
lat = parseFloat(latlong.lat);
var getObject = Centers.find({ coordinates: { $near: { $geometry: { type: "Point", coordinates: [lat,lng] }, $maxDistance: 10000 } } }).fetch();
console.log(getObject);
return getObject;

}
});

/project/lib/router.js

Router.route('/search/:name', {
name : 'searchlistDemo',
data : function() {
this.searchedString = Router.current().params.name;
searchedParams = this.searchedString;
searchedParams = searchedParams.split('-');
var lat = searchedParams.pop();
var lng = searchedParams.pop(1);
lng = Number(lng).toFixed(6);
console.log(lng);
lat = Number(lat).toFixed(6);
var latlong = {'lat':lat,'lng':lng};
Meteor.call("getResponseFromServer",latlong,function(error,success){
var searchValue =  {searchValue :success}
console.log('we are');
console.log(searchValue);
return searchValue;
//  console.log(error);
});
}
}
);

project/client/templates/search_list.html

<template name="searchlistDemo">

<ul>
{{#each searchValue}}
<li>
<div>{{name}}</div>
</li>
{{/each}}
</ul>

</template>

我对客户端方法使用相同的方式,并且所有方法都运行良好。但我不知道为什么这是错误的。

我刚刚使用了这段代码,现在能够在模板中打印数据,我只是在路由器中更改了一些东西.js

Meteor.call("getResponseFromServer",latlong,function(error,success){
var searchValue =  {searchValue :success};
Session.set('getServerSideResponse',searchValue);
});
return Session.get('getServerSideResponse');

最新更新