suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie kann ich die Ausführung von Ajax in Vue 2.0 verhindern, wenn EL nicht vorhanden ist?

Da eine Seite mehrere Ajax-Anfragen hat oder Sie ein JS auf mehreren Seiten aufrufen möchten, müssen Sie Ajax nicht verwenden. So lösen Sie dieses Problem. beforeCreate und mount funktionieren nicht, egal ob der <p id="el名">storage vorhanden ist oder nicht, wenn Sie die Konsole zur Überwachung verwenden, wird die Ajax-Anfrage trotzdem ausgegeben. Vielen Dank

        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 +")");
                    }
                })
            }
        });

Ist es notwendig, ein p-Urteil hinzuzufügen? Zum Beispiel:

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

}

Gibt es einen besseren Weg

伊谢尔伦伊谢尔伦2752 Tage vor862

Antworte allen(2)Ich werde antworten

  • 学习ing

    学习ing2017-06-26 10:57:39

    首先要明白一点,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 +")");
                            }
                        });
                    }
                }
            });

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-06-26 10:57:39

    https://cn.vuejs.org/v2/guide...生命周期图示

    Antwort
    0
  • StornierenAntwort