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

时间:2017-08-23 15:27:43

标签: javascript mongodb meteor

我在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>

我对客户端方法使用相同的方法,并且一切正常。但我不知道为什么会出错。

1 个答案:

答案 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');