2016-07-25 58 views
0

我玩弄应用,绑定和调用方法,以取代jquery.extends。下面我无法用公开数据替换layout,如果我没有从我打电话的对象传入。无法与对象的默认值

var data = [{ 
     "option": "com_social", 
     "userId": localStorage.getItem("ckuser"), 
     "layout": "getSample", 
     "view": "conversations", 
     "format": "json", 
     "limit": 1 
    }]; 
var Data = 'default'; 
function ajaxCall(opt){ 
    var opt = jQuery.extend({}, data, opt); 
    var layout = opt[0]['layout']; 
    this.Data = layout; 

} 

/***global variable & functions end***/ 

var list = { 
      data : [{ 
       "option": "com_social", 
       "userId": localStorage.getItem("ckuser"), 
       "layout": "getConversations", 
       "view": "conversations", 
       "format": "json", 
       "limit": 2 
      }] 
     } 

ajaxCall.call (list, list.data); 
console.log(list.Data); 

,如果我不"layout": "getConversations",通为对象list,它说不确定。我明白我要求使用列表对象中的数据。但是现在我希望能够使用jQuery.extend来替换默认数据,如果列表对象不通过属性。

回答

1

jQuery.extend其类似于Object.assign将延伸的对象,但不阵列。

在下面的代码:

var opt = jQuery.extend({}, data, opt);data是无键的阵列。因此,它不工作,你期待..

试试这个:的

var opt = jQuery.extend({}, data[0], opt[0]);代替var opt = jQuery.extend({}, data, opt);

+0

你是一个美丽的天使!谢谢 – 112233

+0

lol np!快乐的编码 –