gpt4 book ai didi

javascript - Meteor js 显示方法结果

转载 作者:行者123 更新时间:2023-12-01 02:18:09 25 4
gpt4 key购买 nike

我确实有一个模板,并且我正在尝试显示一个应该从方法修改的变量

这是我的代码的样子

html

{{test}}

服务器:

if (Meteor.isServer) {
Meteor.methods({
callApi: function (term) {
this.unblock();
try {
const result = HTTP.call('GET', 'https://www.googleapis.com/youtube/v3/search')
return result;
} catch (e) {
// Got a network error, timeout, or HTTP error in the 400 or 500 range.
console.log(e);
return false;
}
}
});
}

客户端

    Template.body.helpers({
test: 'test'
});
Template.body.events({
'submit .media-Search'(event, template) {
// Prevent default browser form submit
event.preventDefault();

// Get value from form element
const target = event.target;
const text = target.text.value;

Meteor.call("callApi", text, function(error, results) {
if (error)
console.log(error);

template.test = results.data.items[0].snippet.channelId; //results.data should be a JSON object
});

// Clear form
target.text.value = '';
},
});

变量确实发生了变化,但变化没有显示在 html 页面上,我做错了什么?

非常感谢!

最佳答案

您需要将 Meteor 方法结果存储在 react 变量/ react 字典中:

import { ReactiveVar } from 'meteor/reactive-var';

Template.body.onCreated(function() {
this.test = new ReactiveVar(); // create reactive var

})

稍后在提交事件中:

// ...
Meteor.call("callApi", text, function(error, results) {
if (error) console.log(error);

// set value for reactive variable
template.test.set(results.data.items[0].snippet.channelId);
});

您的模板助手当前是一个字符串(我想知道构建系统不会对此抛出错误),但应该是一个返回更新后的 react 变量的方法:

Template.body.helpers({
test() {
return Template.instance().test.get();
}
});

您应该阅读有关 Blaze 和 ReactiveVar 文档的更多内容:

http://blazejs.org/

https://docs.meteor.com/api/reactive-var.html

关于javascript - Meteor js 显示方法结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49390589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com