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

标签 javascript json templates meteor append

我正在尝试将我的 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/

相关文章:

javascript - 在弹出窗口和后台 Chrome 扩展程序之间工作

json - 无法在循环中访问寄存器变量

javascript - 使用嵌套 JSON 响应创建 HTML 列表(具有未定义的 Json 索引级别)?

c++ - 带有 CRITICAL_SECTION 的模板类编译但在使用时出现错误

c++ - 为什么不能在这个模板函数中推导出类型?

javascript - 我自己对 codeigniter 中的默认 .htaccess 文件进行了一些更改,现在我的注销链接不起作用

javascript - 如何期望列表中是否存在项目

javascript - MobileSafari 因内存消耗过多而崩溃

JavaScript 循环遍历 Json 日期

c++ - 错误 : 'T' is not a template