我正在尝试将异步函数中的数据发送到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;
}
});
发布于 2016-07-08 19:34:54
有几种方法可以解决这个问题。请看一下反应式方法包:https://github.com/stubailo/meteor-reactive-method
另一种选择是使用反应式变量。在模板的创建中,您创建了一个反应性变量。然后调用回调更新反应式变量的方法。在helper中,您需要做的就是从反应式变量中获取值。
https://stackoverflow.com/questions/38272485
复制相似问题