2017-06-21 3 views

Antwort

0

eine gegebene Funktion außer Kraft zu setzen i eine Setter-Funktion im Widget exportieren würde:

das Widget bauen, wie Sie immer widget.xml tun würde:

<Alloy> 
    <Button onClick="doClick" title="Hello World!" /> 
</Alloy> 

Export eine Set-Funktion $.overrideListenerclickHandler von der Außenseite des Widgets Widgets übersteuern können.js:

function doDefaultStuff(e){ 
    //Do default stuff 
} 
var clickHandler = doDefaultStuff 
function doClick(e){ 
    clickHandler(e) 
} 
$.overrideListener = function(callback){ 
    clickHandler = callback 
} 

index.xml:

<Alloy> 
    <Window> 
     <Widget id="widget_id" src="com.widget.somewidget"></Widget> 
    </Window> 
</Alloy> 

Aufschalten der clickHandler, wenn Sie möchten etwas anderes als das Standardverhalten index.js tun:

function doCustomStuff(e){ 
    //Do Custom Stuff 
} 
$.widget_id.overrideListener(doCustomStuff) 
+0

Vielen Dank! :) – Porwal

1

Ja, natürlich können Sie außer Kraft setzen, was Sie wollen.

Mit Alloy, greifen Sie auf Widget von id Parameter & mit Classic-Modell, werden Sie einfach Widget Variablennamen verwenden.


Angenommen, Sie haben ein Widget com.widget.somewidget in der XML-Datei als:

index.xml

<Alloy> 
    <Window> 
     <Widget id="widget_id" src="com.widget.somewidget"></Widget> 
    </Window> 
</Alloy> 

Widget .xml

<Alloy> 
    <Button id="widget_button" title="Hello World!" /> 
</Alloy> 

In widget.js, werden Sie nun das Element importieren, für die Sie das Click-Ereignis wie folgt außer Kraft setzen möchten:

$.exportedButtonId = $.widget_button; 

Schließlich können Sie das Klickereignis der Schaltfläche wie folgt überschreiben:

index.js

var widgetButton = $.widget_id.exportedButtonId; 
widgetButton.addEventListener('click', function (e){}); 

Dies ist sehr einfaches Beispiel dafür, wie Sie Widgets flexibel mehr nutzen können, aber Implementierungen sind endlos und ist abhängig von Anwendungsanforderungen. So Viel Glück!

+0

Danke, Prashant! :) – Porwal