我正在尝试将数据从异步函数发送到html页面。我已经成功使用了Meteor的wrapAsync,我可以在控制台中记录我想要的数据数组。但是,当我返回时,数据不会传播到html。当我将数据阵列从控制台粘贴到我的body.js文件中时,一切正常。所以有一些关于我如何返回有缺陷的对象。任何提示赞赏!
Body.js文件
import { Meteor } from 'meteor/meteor';
import { Template } from 'meteor/templating';
import { multichainuser } from '../api/permissions.js';
import './body.html';
Template.body.helpers({
permissions: function(){
var information = {};
Meteor.call('mListPermissions', function(err, result){
console.log(result);
return result;
});
},
});
body.html:
<body>
<div class="container">
<header>
<h1>Permissions</h1>
</header>
<ul>
{{#each permissions}}
{{> permission}}
{{/each}}
</ul>
</div>
</body>
<template name="permission">
<li>{{address}}</li>
<li>{{type}}</li>
</template>
permissions.js
import { Meteor } from 'meteor/meteor';
var multichainuser = require("multichain-node");
Meteor.methods({
mListPermissions: function() {
var lPSync=Meteor.wrapAsync(multichainuser.listPermissions, multichainuser);
var result = lPSync({});
return result;
}
});
答案 0 :(得分:2)
有几种方法可以解决这个问题。请查看反应方法包:https://github.com/stubailo/meteor-reactive-method
另一个选择是使用反应变量。在模板的oncreated中,您可以创建一个反应变量。然后你调用回调更新反应变量的方法。在帮助器中,您需要做的就是从反应变量中获取值。