【问题标题】:Meteor Blaze fetch data and update templateMeteor Blaze 获取数据并更新模板
【发布时间】:2017-08-20 05:27:47
【问题描述】:

我的流星应用中有以下逻辑:

   Template.configs.events = {
        'click li': function(e, template) {
           Meteor.call('getMaster', uri, function(err, response) {
           // Template.set(response)
        });
        }
    };

用户点击列表后,通过 Ajax 返回一个 json 对象。我如何将这个对象动态注入到模板中?有设计模式吗?

提前谢谢你。

【问题讨论】:

    标签: meteor meteor-blaze


    【解决方案1】:

    您可以通过模板的反应变量来处理此类返回数据。使用您的代码,我编写了一个“完整”示例,展示了此类变量的初始化、设置和获取:

    Template.configs.onCreated(function () {
        this.foo = new ReactiveVar();
        this.bar = new ReactiveVar();
    });
    
    Template.configs.helpers({
        foo() {
            return Template.instance().foo.get();
        },
    
        bar() {
            return Template.instance().bar.get();
        }
    });
    
    Template.configs.events({
        'click li': function(e, template) {
            Meteor.call('getMaster', uri, function(err, response) {
                let foo = response.foo;
                let bar = response.bar;
    
                template.foo.set(foo);
                template.bar.set(bar);
            });
        }
    });
    

    【讨论】:

    • 谢谢,我设法构建了相同的解决方案,但使用响应式字典而不是响应式 var。不过我不知道有什么区别。
    • 它们是相似的。字典只是提供了一种反应方式来将一堆键/值对对象保持为一个单一的东西。例如也许你有未知数量的反应汽车;你不能为每一个都创建一个响应式 var,因为你不提前知道你会有多少。
    猜你喜欢
    • 1970-01-01
    • 2018-08-26
    • 1970-01-01
    • 2016-04-30
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 2015-04-18
    • 2020-07-07
    相关资源
    最近更新 更多