Widget: Added ability to define how to find options on init. Fixes #6158 - Widget: Ability to define new methods for gathering options on init.

This commit is contained in:
Scott González 2010-10-06 15:11:49 -04:00
parent c3b282fceb
commit 512825d358
2 changed files with 34 additions and 1 deletions

View File

@ -156,6 +156,32 @@ test("merge multiple option arguments", function() {
}); });
}); });
test( "_getCreateOptions()", function() {
expect( 1 );
$.widget( "ui.testWidget", {
options: {
option1: "valuex",
option2: "valuex",
option3: "value3",
},
_getCreateOptions: function() {
return {
option1: "override1",
option2: "overideX",
};
},
_create: function() {
same( this.options, {
disabled: false,
option1: "override1",
option2: "value2",
option3: "value3"
});
}
});
$( "<div>" ).testWidget({ option2: "value2" });
});
test( "re-init", function() { test( "re-init", function() {
var div = $( "<div></div>" ), var div = $( "<div></div>" ),
actions = []; actions = [];

View File

@ -145,7 +145,7 @@ $.Widget.prototype = {
this.element = $( element ); this.element = $( element );
this.options = $.extend( true, {}, this.options = $.extend( true, {},
this.options, this.options,
$.metadata && $.metadata.get( element )[ this.widgetName ], this._getCreateOptions(),
options ); options );
var self = this; var self = this;
@ -157,6 +157,13 @@ $.Widget.prototype = {
this._trigger( "create" ); this._trigger( "create" );
this._init(); this._init();
}, },
_getCreateOptions: function() {
var options = {};
if ( $.metadata ) {
options = $.metadata.get( element )[ this.widgetName ];
}
return options;
},
_create: function() {}, _create: function() {},
_init: function() {}, _init: function() {},