【发布时间】:2018-04-28 17:31:09
【问题描述】:
我的client/main.js 有以下代码:
Template.hello.onCreated(function helloOnCreated() {
// counter starts at 0
this.counter = new ReactiveVar(0);
var token = Meteor._localStorage.getItem("token");
var result = HTTP.call('GET', 'http://faa22147.ngrok.io/auth/users', {
headers: {
"Content-type": "application/json",
'Authorization': "Bearer " + token
}
}, function (error, result) {
if (!error) {
console.log(result.data);
this.users = result.data;
}
console.log(error.response.content);
});
});
result.data 具有从 API 正确返回的对象。
模板很简单,但是响应没有返回给模板。
<template name="hello">
<button class="btn btn-primary">Click Me</button>
<p>You've pressed the button {{counter}} times.</p>
{{#each users}}
{{>user}}
{{/each}}
</template>
<template name="user">
{{name}}
</template>
【问题讨论】:
-
将
this.users也设为反应变量。 -
关于
this以及是否可以从模板上下文访问users或者是否需要帮助器也存在不确定性。 -
我尝试让 this.users 反应,并尝试使用助手,从启动器 users() 复制 counter() 示例 { return Template.instance().users.get(); },然后使用:instance.users=result.data;没有任何工作仍然
-
你需要
set()它到result.data,假设它是一个数组,而不是用数组覆盖它。this.uesrs.set(result.data). -
你可以使用箭头函数来摆脱对
bind的需要。
标签: javascript meteor meteor-blaze