【发布时间】:2016-03-08 17:58:34
【问题描述】:
是否存在在多个小部件之间共享单个 dojo/store 的模式?
我在同一个页面上有多个使用同一个 dojo/store 的小部件,我不想复制它,所以我不需要进行两次相同的 REST 调用。
【问题讨论】:
-
您是否尝试过将 store 设为全局并作为参数传递给不同的小部件?
是否存在在多个小部件之间共享单个 dojo/store 的模式?
我在同一个页面上有多个使用同一个 dojo/store 的小部件,我不想复制它,所以我不需要进行两次相同的 REST 调用。
【问题讨论】:
考虑创建一个单独的模块,用于存储 dojo/store 的状态和操作。
该模块将包含一个您的小部件可以访问的“API”。
下面是一个使用单音模式的非常简单的例子。
define([], function () {
'use strict';
var _instance;
function _StoreManager() {
}
_StoreManager.prototype = {
_privateMember: null,
getDataFromApi: function () {
//...
},
saveDataToApi: function (data) {
//...
},
};
return function _getSingleton() {
// summary:
// Gets singleton object.
return (_instance = (_instance || new _StoreManager()));
};
});
需要模块并使用它。
require(['_StoreManager'],function(_StoreManager){
_StoreManager.saveDataToApi({});
});
【讨论】: