我在Meteor中使用了服务器端方法,我从集合中获取数据。我从客户端调用服务器端方法。
服务器的方法成功返回数据,当我console.log(success)
时
我在回调函数中获得了数据。但问题是我无法在模板中打印这些数据。我不知道出了什么问题。如果有人有任何想法,请告诉我。
下面我展示了我的代码。
/project/server/new.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);
});
}
}
);
项目/客户端/模板/ search_list.html
<template name="searchlistDemo">
<ul>
{{#each searchValue}}
<li>
<div>{{name}}</div>
</li>
{{/each}}
</ul>
</template>
我对客户端方法使用相同的方法,并且一切正常。但我不知道为什么会出错。
答案 0 :(得分:0)
我刚刚使用了这段代码,现在能够在template.i中打印数据,只是改变了router.js中的一些东西
Meteor.call("getResponseFromServer",latlong,function(error,success){
var searchValue = {searchValue :success};
Session.set('getServerSideResponse',searchValue);
});
return Session.get('getServerSideResponse');