我试图理解这个关于这个概念的帖子,但是,我没有得到它.我有以下简单的设置:
/server/test.js
Meteor.methods({
abc: function() {
var result = {};
result.foo = "Hello ";
result.bar = "World!";
return result;
}
});
/client/myapp.js
var q = Meteor.call('abc');
console.log(q);
Run Code Online (Sandbox Code Playgroud)
此结构返回到控制台undefined
.
如果我将myapp.js
文件更改为:
Meteor.call('abc', function(err, data) {
!err ? console.log(data) : console.log(err);
}
Run Code Online (Sandbox Code Playgroud)
我收到了Object
我的控制台.
理想情况下,这是我希望能够做到的,但它不起作用,在控制台中说明: Cannot read property 'greeting' of undefined
/client/myapp.js
var q = Meteor.call('abc');
Template.hello.greeting = function() {
return q.foo;
}
Run Code Online (Sandbox Code Playgroud)
将数据从服务器对象传递到模板的任何帮助将不胜感激.我还在学习JavaScript和Meteor.
谢谢!
Tam*_*man 77
在客户端上,如果您没有传递回调并且您不在存根中,则调用将返回undefined,并且您将无法获取该方法的返回值.这是因为客户端没有光纤,因此实际上没有任何方法可以阻止远程执行方法.
所以,你会想这样做:
Meteor.call('abc', 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)
一旦数据可用,这将反应性地更新模板.
归档时间: |
|
查看次数: |
31283 次 |
最近记录: |