Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# [XBL] problème avec les propriétés / attributs

Envoyé par : cokinou

Date : 31/01/2007 13:56

Bonjour

J'ai un petit souci avec mon XBl. En fait, j'ai une propriété 'test' dans mon objet avec un setter et un getter.

  <binding id="testbox">
     <content>
     ...
     </content>
  
     <implementation>
        <property name="test">
           <getter>
              return 'test';
           </getter>
           <setter>
              alert('set test');
           </setter>
        </property>
     ...
     </implementation>
  </binding>

Cela fonctionne bien (j'ai mon alert) lorsque j'écris dans mon javascript :

  monObjetTestbox.test = 'tutu';

Par contre, rien ne fonctionne si je fais :

  monObjetTestbox.setAttribute('test', 'tutu');

Mon problème est donc de détecter le setAttribute().

Quelqu'un à une idée ?

Merci d'avance

# Re: [XBL] problème avec les propriétés / attributs

Envoyé par : hhf

Date : 31/01/2007 19:41

ceci est un vrai probleme, voici une solution maison :

<field name="_super"><![CDATA[
	this.constructor.prototype;
]]></field>
<method name="setAttribute">
	<parameter name="attr"/>
	<parameter name="val"/>
	<body><![CDATA[
		if(typeof this[attr]!="undefined")	this[attr]=val;
		else this._super.setAttribute.call(this, attr, val);
	]]></body>
</method>

# Re: [XBL] problème avec les propriétés / attributs

Envoyé par : cokinou

Date : 01/02/2007 12:11

hhf a écrit:

ceci est un vrai probleme, voici une solution
maison :
<field name="_super"><![CDATA[
this.constructor.prototype;
]]></field>
<method name="setAttribute">
<parameter name="attr"/>
<parameter name="val"/>
<body><![CDATA[
if(typeof thisattr!="undefined") thisattr=val;
else this._super.setAttribute.call(this, attr, val);
]]></body>
</method>

Merci pour cette méthode.... j'avais essayé de redéfinir le setAttribute, mais je ne voyais pas comment récupérer le setAttribute d'origine... Grâce à ton _super c'est chose faite.

Je vais tout de suite mettre ca en place, merci beaucoup ;-)

# Re: [XBL] problème avec les propriétés / attributs

Envoyé par : cokinou

Date : 01/02/2007 13:07

hhf a écrit:

ceci est un vrai probleme, voici une solution
maison :

Eh ben elle marche nickel ta solution maison :-)

Merci bien, ca me resolve un problème qui m'embéter bien :-)

# Re: [XBL] problème avec les propriétés / attributs

Envoyé par : hhf

Date : 03/02/2007 01:36

Ha oui, petit truc que j'ai oublié de te dire, dans ta properties : tu dois faire comme ca :

<property name="test">
	<setter><![CDATA[
		// ici ton code metier
		this._super.setAttribute.call(this, "test", val);
		// et surtout pas this.setAttribute("test", val);
		// sinon c'est la boucle infini
	]]></setter>
	<getter><![CDATA[
		return this.getAttribute("test");
	]]></getter>
</property>

Il n'est plus possible de poster des messages dans ce forum.


Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.