Details
Description
This issue duplicates #5987.
I have got JavaScript error: 'dojo.data is undefined' after migrating to ZF 1.7.7.
It seems that JavaScript tried to create new instance of dojo.data.ItemFileReadStore, but it is not loaded yet.
ItemFileReadStore instance should be created after page load, using dojo.addOnLoad method.
I think that using prependOnLoad (look at the first comment) instead of addJavascript (in ComboBox.php line 142).
The following code was generated by Dojo View helper:
dojo.require("dojo.data.ItemFileReadStore"); dojo.require("dijit.form.FilteringSelect"); dojo.require("dijit.form.CurrencyTextBox"); dojo.require("dijit.form.NumberTextBox"); dojo.require("dijit.form.Textarea"); dojo.require("dijit.form.Button"); dojo.require("dijit.Dialog"); dojo.require("dijit.ColorPalette"); dojo.require("dojo.parser"); dojo.addOnLoad(function() { dojo.forEach(zendDijits, function(info) { var n = dojo.byId(info.id); if (null != n) { dojo.attr(n, dojo.mixin({ id: info.id }, info.params)); } }); dojo.parser.parse(); }); var manufacturerStore = new dojo.data.ItemFileReadStore({"url":"\/manufacturer\/list"}); var modelStore = new dojo.data.ItemFileReadStore({"url":"\/model\/list"}); var zendDijits = [{"id":"manufacturer","params":{"label":"Manufacturer","store":"manufacturerStore","dijitParams",........}}];
Hello,
Just to say that i have exactly the same problem. With this code :
$nom = new Zend_Dojo_Form_Element_FilteringSelect('nom');
$nom->setLabel('Nom : ');
$nom->setAutoComplete(true);
$nom->setStoreId('nom');
$nom->setStoreType('dojo.data.ItemFileReadStore');
$nom->setStoreParams(array('url' => '/js/nom.js'));
$nom->setAttrib(array('searchAttr' => 'nom'));
$nom->setRequired(true);
$form->addElement($nom);
i get the same Javascript error :
dojo.data is undefined
and, of course, an empty select field.
Tested with ZF 1.7.8.
Regards,
Stephane.