From 18723c28b472c3838f56545e639fd8fec2c7f2af Mon Sep 17 00:00:00 2001 From: lianqin7 Date: Fri, 29 Mar 2013 16:18:57 +0800 Subject: [PATCH] Update attribute.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 给set方法的option增加override配置,满足强制覆盖对象类型的需求 --- src/attribute.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/attribute.js b/src/attribute.js index e375bb1..2dccd2c 100644 --- a/src/attribute.js +++ b/src/attribute.js @@ -72,6 +72,7 @@ define(function(require, exports) { options || (options = {}); var silent = options.silent; + var override = options.override; var now = this.attrs; var changed = this.__changedAttrs || (this.__changedAttrs = {}); @@ -95,8 +96,9 @@ define(function(require, exports) { var prev = this.get(key); // 获取需要设置的 val 值 + // 如果设置了 override 为 true,表示要强制覆盖,就不去 merge 了 // 都为对象时,做 merge 操作,以保留 prev 上没有覆盖的值 - if (isPlainObject(prev) && isPlainObject(val)) { + if (!override && isPlainObject(prev) && isPlainObject(val)) { val = merge(merge({}, prev), val); }