Yii2 E Javascript

Salve!

sto iniziando a passare a Yii2 con diverse soddisfazioni ma con un sacco di lettura di codice in quanto la documentazione ancora è piuttosto scarsa.

Sono in cerca di scambi di pareri per realizzare form modali sfruttando il più possibile gli strumenti di Yii2, però la documentazione è quasi nulla a riguardo… se qualcuno ha qualche fonte interessante la gradisco volentieri :)

Intanto chiedo vediamo se non siete tutti in vacanza :D

Ho scritto un piccolo modulo JS (così lo chiamano) per intercettare il click in un normale link




yii.custom = (function($) {

  var pub = {

    isActive: true,

    init: function() {

      $('.click-me:not(.processed)').click(function(e) {

        $(this).addClass('processed');

        e.preventDefault();

        var jqxhr = $.ajax("/index.php?r=" + $(this).attr('data-path'))

        .done(function(data) {

          alert(data.status);

        })

        .fail(function(jqXHR, textStatus) {

          console.log(jqXHR);

          console.log(textStatus);

        });

        return false;

      });

    },

  };


  // Private functions

  // ...


  return pub;

})(jQuery);


jQuery(document).ready(function() {

  yii.initModule(yii.custom);

});



Come vedete ho provato:

ad assegnare una classe "processed" per non riprocessare il click;

ad usare preventDefault();

a ritornare un false;

però la chiamata ajax viene fatta due volte non ho capito come mai, anche controllando tra i sorgenti non riesco a capire cos’è che fa duplicare la chiamata…

Il problema è proprio la chiamata perché commentandola e mettendo un log dentro la callback del click si vede che il click intercettato è solo uno!

Qualche idea? :)

Trovato, avevo letto male yii.js.

Utilizzando yii come root module non c’è bisogno di




jQuery(document).ready(function() {

  yii.initModule(yii.custom);

});



Altrimenti viene caricato due volte!