Client2.config.select2() を呼び出すたびに、すべてが再定義されます。
そのような関数/オブジェクトの再定義を防ぐ方法はありますか? つまり、このオブジェクト内のいくつかの要素を保存する別の変数が必要な場合、実行Client2.config.select2()
するとそれが上書きされます。
これを行うためのよく知られたパターンはありますか?
Client2.config.select2 = function() {
var coreIDs = ['clientID', 'cptyID' , 'sym'];
var nonCoreIDs = ['groupBy','groupBy_impact_1','groupBy_impact_2',
'groupBy_impact_3','groupBy_impact_4'];
//non dynamic filters
var autoCompleteSettings = function () {
return {
allowClear : true,
minimumInputLength : 2,
multiple : true,
placeholder: "Select ",
closeOnSelect : false,
openOnEnter : true,
ajax: {
url : "../my?page=search",
dataType : 'json',
data : function(term, page) {
return {
q : term
};
},
results : function(data, page) {
return {
results : data
};
}
}
};
};
var multipleSettings = function () {
return {
placeholder : "Select ",
allowClear : true,
closeOnSelect : false,
maximumSelectionSize: 6
};
};
return {
getAutoCompleteSelectSettings: function() {
return new autoCompleteSettings();
},
getMultipleSelectSettings: function() {
return new multipleSettings();
},
getCoreSelect2IDs: function () {
return coreIDs;
},
getNonCoreSelect2IDs: function () {
return nonCoreIDs;
},
getSelect2IDs : function() {
return coreIDs.concat(nonCoreIDs);
}
}
};