gpt4 book ai didi

javascript - Json 数据未使用each append 到Meteor 模板中

转载 作者:行者123 更新时间:2023-12-02 17:14:23 26 4
gpt4 key购买 nike

我正在尝试将我的 json 数据 append 到模板中。将会有几个对象,因此在我的模板中我使用 {{#each products}} 。 Json 数据似乎出现在控制台中,但模板中的数据没有任何反应。

这是我的js:

 if (Meteor.isClient) {
Template.product_items.products = function () {
Meteor.call('getProducts', function(error, result){
var products = JSON.parse(result.content).products;
console.log(products);
})
}
}


if (Meteor.isServer) {
Meteor.startup(function () {
Meteor.methods({
getProducts: function(){
return HTTP.call("GET", "https://api.url.com/products",
{params: {access_token: "***"}});
}
});
})}

我的看法:

<body>
{{> product_items}}
</body>

<template name="product_items">
{{#each products}}
<div class="col-md-3">
<img src="{{preview_url}}" class="img-thumbnail">
<h4>{{name}}</h4>
<p>{{description}}</p>
<p>
<a href="{{short_url}}">More</a>
</p>
</div>
{{/each }}

</template>

console.log(products);给我正确的数据:

[Object, Object]
0: Object
description: "<p>it's what you need</p>"
name: "wow product"
preview_url: "erl.jpg"
webhook: null
__proto__: Object
1: Object
description: "<p>okok</p>"
name: "wow nemr"
preview_url: "surl.jpg"
webhook: null
__proto__: Object
length: 2
__proto__: Array[0]

但它没有出现在模板中。我做错了什么?

最佳答案

您需要从 Template.product_items.products 函数返回您的值。当然,当您使用方法时,这不可能直接实现,因为方法在客户端上是异步的。您需要利用助手的 react 能力。

示例:

var products = null;
var productsDep = new Tracker.Dependency();

Template.product_items.rendered = function() {
products = null;
Meteor.call('getProducts', function(error, result) {
products = JSON.parse(result.content).products;
productsDep.changed();
});
};

Template.product_items.helpers({
products: function() {
produtsDep.depend();
return products;
},
});

关于javascript - Json 数据未使用each append 到Meteor 模板中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24564234/

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