我正在尝试即时更改 dijit/form/select 的存储。为此,我需要从服务器检索存储。我需要将此商店保存在某个临时商店中,并在我的代码中对临时商店进行更改。
在我下面的代码中, requiredStore 具有从服务器接收到的数据。我需要创建一个新的临时存储,在我的情况下是temporaryStore,它可以在requiredStore 中分配数据。(而不是temporaryStore 是对requiredStore 的引用)因此,当我删除/更改temporaryStore 中的值时,requiredStore 不受影响。以下是我用过的代码。
function getDropDownContents() {
require([
"dojo/store/Memory",
"dijit/form/Select",
"dojo/data/ObjectStore",
"dojo/request",
"dojo/domReady!"
],
function (Memory, Select, ObjectStore, request) {
var os;
var def = new dojo.Deferred();
dojo.xhrGet({
url: "pageToGetValues.aspx",
handleAs: "json",
load: function (res) {
requiredStore = new Memory({ data: res });
temporaryStore = requiredStore;
getOptionsToSelect('dropdown1');
var select = dijit.byId('dropdown1');
select.on('change', function (evt) {
getOptionsToSelect('dropdown2');
});
myFormDialog.show();
}
});
});
}
但是,我不知道,我没有遵循哪些 JavaScript 原则,因为当我更改temporaryStore 时,requiredStore 也发生了变化。