【问题标题】:meteor call jquery inside a onrendered template在onrendered模板内流星调用jquery
【发布时间】:2017-10-07 08:59:34
【问题描述】:

我想在模板的onRendered 函数中包含一个使用jquery 的脚本。

这是代码

Template.Admin_users.onRendered(function(){
    var instance = this;
    instance.autorun(function(){
        if($){
            console.log($);
            console.log("jquery");
            $("#Users.collection-item").click();    
            $.getScript(
                "http://maps.googleapis.com/maps/api/js?sensor=false&libraries=places"
                //'https://maps.googleapis.com/maps/api/js?libraries=places'
                , function(){
                    console.log("loaded gmap");
                    var acs = $(".citycomplete").length;
                    for(var i = 0 ;i<acs;i++){
                        var autocomplete = new google.maps.places.Autocomplete($(".citycomplete")[i], {});
                        autocomplete.id = $(".citycomplete")[i].id;
                        google.maps.event.addListener(autocomplete, 'place_changed', function() {
                            var place = autocomplete.getPlace();
                            $("input[name=lat]#"+autocomplete.id).val(place.geometry.location.lat());
                            $("input[name=lng]#"+autocomplete.id).val(place.geometry.location.lng());
                        });
                    }
            });
        }
    });

});

问题是jquery(和gmap)不会在页面刷新时加载。如果我更改模板(加载另一条路线)然后回到这个Admin_users 模板,jquery 和 gmap 将加载。如何在页面加载时加载 jquery?

我在这里看到了很多关于这个问题的问题,但似乎没有一个对我有用(solution onetwothreefour)

【问题讨论】:

    标签: javascript jquery templates meteor


    【解决方案1】:

    如果没有会触发重新运行的反应变量,则无需将该代码放入autorun。您也不希望它重新运行多次正确吗?如果是这样,请删除 autorun。你能做的就是稍等片刻。

    Template.Admin_users.onRendered(function(){
        Meteor.setTimeout(()=>{doYourThing()}, 500);
    });
    

    这有帮助吗?

    【讨论】:

    • 是的。那行得通。即使没有等待 500 毫秒 Meteor.setTimeout(()=>{doYourThing()}, 0);
    • 奇怪的是 Meteor.defer 解决方案当时对您不起作用,bc 这只是 setTimeout 的一个方便功能,延迟为 0。无论如何,很高兴我能提供帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多