我试图让在一个流星客户使用分页功能。 因此,我需要知道服务器上的记录数。
在服务器(服务器/ bootstrap.coffee)我有这样的代码:
Meteor.methods
ContactsCount: ->
Contacts.find().count()
console.log("Totalrecords: " + Contacts.find().count())
服务器部分被调用(它在控制台上显示正确的数字 - 40)
在客户端,我有:
$.extend Template.pager,
GetRecordCount: ->
Meteor.call("ContactsCount", (error,result) ->
console.log('r', result)
从浏览器控制台Template.pager.RecordCount()返回
未定义
-R 30
我理解的“不确定”是Template.pager.RecordCount()的返回,它是第一回。
当结果来获得其显示到控制台。
但我怎么得到的结果在我的寻呼机模板中的价值?
我在寻找的java回调了几个小时了,但无论我尝试,我不能让它的工作。
请帮忙。
下面是一个更新。
我看着为无效文件。 但这个例子并不能帮助我很多。 温度在函数调用中的paramater设置在客户端。 因此,有没有使用回调。 回调是我的问题。
我解决了它是这样的:
Meteor.call("ContactsCount", myFunc)
### This is the call back function when the server
function 'Meteor.call("ContactsCount", myFunc)' is called
When the result from the server call is returned, this will be executed ###
myFunc = (error, result) ->
if !error
pages = result / Session.get("page_size")
Session.set "total_pages", Number(pages.toFixed(0) + 1)
Session.set "total_records", result
if error
console.log(error)
这工作。 我一直在想,如果这是最好的解决办法。 我有很多Session.set()的调用,也许有太多的触发事情。
### This function will set the css classes
for enabling or disabling the pager buttons
in the Pager Template in myapp.html ###
SetPagerButtons = ->
Meteor.call("ContactsCount", myFunc)
if Session.get("current_page") <= 1
Session.set "nextEnabled", ""
Session.set "lastEnabled", ""
Session.set "firstEnabled", "disabled"
Session.set "previousEnabled", "disabled"
Session.set "last_record", false
else if Session.get("last_record") or Session.equals("current_page", Session.get("total_pages"))
Session.set "nextEnabled", "disabled"
Session.set "lastEnabled", "disabled"
Session.set "firstEnabled", ""
Session.set "previousEnabled", ""
else
Session.set "nextEnabled", ""
Session.set "lastEnabled", ""
Session.set "firstEnabled", ""
Session.set "previousEnabled", ""
Session.set "last_record", false