diff --git a/src/core/widget.js b/src/core/widget.js index f872b5470..b1d1fe258 100644 --- a/src/core/widget.js +++ b/src/core/widget.js @@ -76,8 +76,7 @@ shouldUpdate: null, - update: function () { - }, + update: null, beforeUpdate: null, diff --git a/src/core/wrapper/layout.js b/src/core/wrapper/layout.js index 5d4fdc470..20f68850c 100644 --- a/src/core/wrapper/layout.js +++ b/src/core/wrapper/layout.js @@ -71,12 +71,13 @@ BI.Layout = BI.inherit(BI.Widget, { var self = this; var frag = BI.Widget._renderEngine.createFragment(); var hasChild = false; - BI.each(this._children, function (i, widget) { - if (widget.element !== self.element) { - frag.appendChild(widget.element[0]); + for (var key in this._children) { + var child = this._children[key]; + if (child.element !== self.element) { + frag.appendChild(child.element[0]); hasChild = true; } - }); + } if (hasChild === true) { this.appendFragment(frag); } @@ -268,19 +269,13 @@ BI.Layout = BI.inherit(BI.Widget, { if (!child.shouldUpdate) { return null; } - return child.shouldUpdate(this._getOptions(item)) === true; + return child.shouldUpdate(this._getOptions(item)); }, updateItemAt: function (index, item) { if (index < 0 || index > this.options.items.length - 1) { return; } - - var child = this._children[this._getChildName(index)]; - var updated; - if (updated = child.update(this._getOptions(item))) { - return updated; - } var del = this._children[this._getChildName(index)]; delete this._children[this._getChildName(index)]; this.options.items.splice(index, 1); @@ -367,7 +362,14 @@ BI.Layout = BI.inherit(BI.Widget, { patchItem: function (oldVnode, vnode, index) { var shouldUpdate = this.shouldUpdateItem(index, vnode); - if (shouldUpdate === true || (shouldUpdate === null && !this._compare(oldVnode, vnode))) { + var child = this._children[this._getChildName(index)]; + if (shouldUpdate) { + return child._update(this._getOptions(vnode), shouldUpdate); + } + if (shouldUpdate === null && !this._compare(oldVnode, vnode)) { + // if (child.update) { + // return child.update(this._getOptions(vnode)); + // } return this.updateItemAt(index, vnode); } }, diff --git a/ui/less/var.less b/ui/less/var.less index e55756a31..c89fa87cc 100644 --- a/ui/less/var.less +++ b/ui/less/var.less @@ -2,4 +2,4 @@ @fontUrl: '@{webUrl}font/'; //图片的基本地址 @imageUrl: '@{webUrl}images/1x/'; //图片的基本地址 -@image2xUrl: '@{webUrl}images/2x/'; //2倍图片的基本地址 \ No newline at end of file +@image2xUrl: '@{webUrl}images/2x/'; //2倍图片的基本地址