vue 2.0中,如果el不存在,怎样让ajax不要执行下去了

因为一个页面有多个ajax请求,或者想多个页面调用一个js的时候,不需要用到的ajax,他也会请求数据,如何解决这个问题。beforeCreate与mounted不管用,不管<div id="el名">存不存在,用控制台监控,还是一样会发出ajax请求,请大大们帮忙解惑,感激不尽

        var rnotice =new Vue({
            el: '#right-notice',
            data: {sites:''},
            beforeCreate: function(){
                var _self = this;
                $.ajax({
                    type:'GET',
                    url:notice,
                    success:function(data){
                        _self.sites = eval("(" + data +")");
                    }
                })
            }
        });

是不是必须加个div的判断呢?比如:

if($('#right-notice').length>0){
   
  ajax....

}

还有没有更好的方法

阅读 2.5k
2 个回答

首先要明白一点,html是html,js是js,你的代码new了一个Vue对象,这个对象并不会依存于right-notice这个元素,并不是这个元素不存在对象就无法实例化,需要你自己加逻辑去判断是否存在这个元素


 var rnotice =new Vue({
            el: '#right-notice',
            data: {sites:''},
            beforeCreate: function(){
                if(document.getElementById("right-notice")) {
                    var _self = this;
                    $.ajax({
                        type:'GET',
                        url:notice,
                        success:function(data){
                            _self.sites = eval("(" + data +")");
                        }
                    });
                }
            }
        });
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题