Metawidget はすでにそのような機能を提供しています。以下を使用できます。
var processor = mw.metawidget( "getWidgetProcessor", function( widgetProcessor ) {
return widgetProcessor instanceof metawidget.widgetprocessor.SimpleBindingProcessor;
} );
processor.save( mw.data( 'metawidget' ) );
SimpleBindingProcessor (デフォルトで構成されている) を取得し、その保存メソッドを呼び出します。これにより、すべての UI 要素のコンテンツが に保存されますmw.toInspect
。ここに例があります。Metawidget のいくつかのフレーバー (Angular Metawidget など) はこれを自動的に行うことに注意してください。
要素の ID を取得することに特に関心がある場合は、そのメソッドを拡張SimpleBindingProcessor
してオーバーライドできます。saveFromWidget
var bindingProcessor = new metawidget.widgetprocessor.SimpleBindingProcessor();
var superSaveFromWidget = bindingProcessor.saveFromWidget;
bindingProcessor.saveFromWidget = function( binding ) {
// access binding.widget.getAttribute( 'id' ) and save it somewhere
...
return superSaveFromWidget.call( this, binding );
}
これは、以前のように呼び出すとトリガーされますprocessor.save
。