Bonjour,
je suis un dev c++, et j’essaie de me mettre au JS et je galère. (jusque la rien de bien nouveau ^^ )
J'ai essayé de suivre le cours sur la POO de JPVincent, et j'ai donc adapté son namespace a mes besoin et manifestement mal adapté par ce que ça marche pas comme je voudrais.
Je voudrais faire une classe JS qui s'occupe de remplir un tableau json (qui serait une variable interne de la classe )
Voila mon code :
le code html :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 JSC_NAMESPACE = {}; (function() { JSC_NAMESPACE.datas = JSC_NAMESPACE.datas || {}; // constructeur JSC_NAMESPACE.datas.JSONLoader = function( jsonFile ) { this.dataTab = []; this.dataTab.push("test"); $.getJSON(jsonFile, function(data) { $.each(data, function(id, row) { this.dataTab.push(row); }); }); }; // variables et méthodes publiques propres à chaque instance JSCHART_NAMESPACE.datas.JSONLoader.prototype = { countIt:function(){ return this.dataTab.length; }, }; })();
Mon problème c'est que à la ligne " this.dataTab.push(CS);" le debugger me dit que this.dataTab est indéfini alors que plus haut " this.dataTab.push("test") "à fonctionné.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 <script type="text/javascript" src="jsC.js"></script> <script type="text/javascript"> <!-- $(document).ready( function() { var obj = new JSC_NAMESPACE.datas.JSONLoader('test1.json'); $(toto).html(obj.countIt()); }); //--> </script>
"$(toto).html(obj.countIt());" me renvoi 1 soit grâce a la ligne "this.dataTab.push("test") ", sinon il me renverrai 0.
Est ce un problème avec le this ?
Merci d'avance pour votre aide.
Partager