相关疑难解决方法(0)

如何呈现Meteor Session变量的HTML?

我之前关于使用Meteor.call从服务器上的对象获取数据的帖子之后,我想知道一旦收到来自服务器的类似对象数据,这些相同的数据如何呈现HTML.这是一个简单的例子:

/server/svr.js
Meteor.methods({
  test: function(text) {
    var result = {};
    result.foo = "<em>" + text + "</em>";
    result.bar = text;
    return result;
  }
});

/client/del.js
Meteor.call('test', "Hello World - May 2012", function(err, data) {
if (err)
  console.log(err);

  Session.set('q', data);
});

Template.hello.greeting = function() {
  return Session.get('q').foo;
};
Run Code Online (Sandbox Code Playgroud)

当我在标准流星应用程序中运行此代码时,我在浏览器窗口中看到:

Hello World!
<em>Hello World - May 2012</em>
Run Code Online (Sandbox Code Playgroud)

理想情况下,我希望包含html代码的会话变量已经渲染了传递给它的(在上面的简单示例中 - 在输出到浏览器时使第二行斜体化).我该如何完成这项工作?

在此先感谢您的帮助!

html meteor

9
推荐指数
1
解决办法
4130
查看次数

如何在模板中获取Meteor.call函数的结果

我正在尝试制作用于Meteor客户端的分页功能.因此,我需要知道服务器上的记录数.

在服务器上(在server/bootstrap.coffee中)我有这个代码:

Meteor.methods
  ContactsCount: ->
    Contacts.find().count()
    console.log("Totalrecords: " + Contacts.find().count())
Run Code Online (Sandbox Code Playgroud)

调用服务器部分(它在控制台上显示正确的数字 - 40)

在客户端我有:

$.extend Template.pager,
  GetRecordCount: ->
    Meteor.call("ContactsCount", (error,result) ->
    console.log('r', result)
Run Code Online (Sandbox Code Playgroud)

从浏览器控制台Template.pager.RecordCount()返回

undefined
r 30

我理解'undefined'是从Template.pager.RecordCount()返回的,它首先返回.

当结果可用时,它将显示在控制台中.

但是如何在寻呼机模板中获得结果的值?

我现在正在搜索Java回调几个小时,但无论我尝试什么,我都无法让它工作.
请帮忙.

这是一个更新.

我看了无效的文档.但这个例子对我没什么帮助.在函数调用中使用参数在客户端中设置温度.所以没有使用回调.回调是我的问题.

我这样解决了:

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", …
Run Code Online (Sandbox Code Playgroud)

templates callback handlebars.js meteor

5
推荐指数
1
解决办法
2855
查看次数

Meteor Braintree - 通过Meteor方法创建客户端令牌

我正在努力让Braintree Payments在Meteor应用程序中运行.我一直试图返回生成令牌(服务器端,通过Meteor方法)的结果,以便在客户端使用.

我试过这个:

/server/braintree.js

Meteor.methods({
  createClientToken: function() {

    var token = gateway.clientToken.generate({
        customerId: this.userId
      }, function(err, response) {
          clientToken = response.clientToken
          return clientToken
        }
      )

    console.log(token)
    return token
  }
})
Run Code Online (Sandbox Code Playgroud)

返回true.

我也试过这个:

Meteor.methods({
  createClientToken: function() {

    var clientToken
    gateway.clientToken.generate({
        customerId: this.userId
      }, function(err, response) {
          clientToken = response.clientToken
        }
      )

    console.log(clientToken)
    return clientToken
  }
})
Run Code Online (Sandbox Code Playgroud)

哪个回报undefined.

function(err, response)被异步调用,是吗?如果是这样,那就是问题的解释.似乎尝试从异步函数返回值是Javascript中的一个痛点.我已经阅读了一些SO答案(就像这一个,这一个这一个),但似乎没有一个让我朝着正确的方向前进.

另外,我相信我可能需要使用Meteor的wrapAsync方法,对吗?我已经试过这(发现这个这个相关的等等吧题),但似乎仍不能得到正确的事情.

感谢任何反馈.

更新:

有关将Braintree与Meteor集成的工作方法,请查看 …

javascript asynchronous braintree meteor

4
推荐指数
1
解决办法
732
查看次数