Ox.List: make value method accept (id, {key: value})
This commit is contained in:
parent
41af852f17
commit
a5baff8319
1 changed files with 20 additions and 17 deletions
|
@ -1794,24 +1794,26 @@ Ox.List = function(options, self) {
|
||||||
|
|
||||||
/*@
|
/*@
|
||||||
value <f> get/set list value
|
value <f> get/set list value
|
||||||
|
(id, {key: value, ...}) -> <f> sets value, returns List Element
|
||||||
(id, key, value) -> <f> sets value, returns List Element
|
(id, key, value) -> <f> sets value, returns List Element
|
||||||
(id, key) -> <a> returns value
|
(id, key) -> <a> returns value
|
||||||
(id) -> <o> returns all values of id
|
(id) -> <o> returns all values of id
|
||||||
id <s> id of item
|
id <s|n> id of item (or a number, will be interpreted as position)
|
||||||
key <s> key if item property
|
key <s> key if item property
|
||||||
value <*> value, can be whatever that property is
|
value <*> value, can be whatever that property is
|
||||||
@*/
|
@*/
|
||||||
// FIXME: this should accept {key: value, ...} too
|
that.value = function() {
|
||||||
that.value = function(id, key, value) {
|
var args = Ox.slice(arguments),
|
||||||
// id can be a number and will then be interpreted as position
|
id = args.shift(),
|
||||||
var pos = Ox.isNumber(id) ? id : getPositionById(id),
|
pos = Ox.isNumber(id) ? id : getPositionById(id),
|
||||||
$item = self.$items[pos],
|
$item = self.$items[pos],
|
||||||
data = $item ? $item.options('data') : {};
|
data = $item ? $item.options('data') : {};
|
||||||
if (arguments.length == 1) {
|
if (arguments.length == 1) {
|
||||||
return data;
|
return data;
|
||||||
} else if (arguments.length == 2) {
|
} else if (arguments.length == 2 && Ox.isString(arguments[1])) {
|
||||||
return data[key];
|
return data[arguments[1]];
|
||||||
} else if ($item) {
|
} else if ($item) {
|
||||||
|
Ox.forEach(Ox.makeObject(args), function(value, key) {
|
||||||
if (key == self.options.unique) {
|
if (key == self.options.unique) {
|
||||||
// unique id has changed
|
// unique id has changed
|
||||||
self.options.selected = self.options.selected.map(function(id_) {
|
self.options.selected = self.options.selected.map(function(id_) {
|
||||||
|
@ -1822,6 +1824,7 @@ Ox.List = function(options, self) {
|
||||||
self.options.items[pos][key] = value;
|
self.options.items[pos][key] = value;
|
||||||
}
|
}
|
||||||
data[key] = value;
|
data[key] = value;
|
||||||
|
});
|
||||||
$item.options({data: data});
|
$item.options({data: data});
|
||||||
return that;
|
return that;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue