0
在我的项目中,我需要为应用程序中的所有模块维护一个公共数据对象。如何在knockoutjs + requirejs中维护应用程序的宽数据
这是我存储所有REST API和应用程序宽数据的地方。 (如在商店购物的反应终极版)
dataService.js
define(['jquery', 'app'], function($, app) {
var url = app.serviceURL;
function loginUser(data) {
data.type = "login";
return $.ajax({
url: url + '/authentication.php',
data: data,
method: "POST"
});
};
function logoutUser(data) {
data.type = "logout";
return $.ajax({
url: url + '/authentication.php',
data: data,
method: "POST"
});
};
return {
actions: {
loginUser: loginUser,
logoutUser: logoutUser
},
user: {
isLoggedIn: ''
}
}
});
我需要dataService.js
文件中ViewModel
文件调用login
和logout
服务。
dataService.actions.loginUser(data)
.then(function(data) {
dataService.user.isLoggedIn = true; // I changed the app wide data here
}
});
我的问题是,当我需要一些其他视图模型的dataService
的dataService.user.isLoggedIn
值被设置为默认值。我怎样才能保存这个应用程序的数据?
我不太确定,但是在我看来,您每次调用dataService时都会创建一个新实例,您可以在其中创建初始'App',将其存储在全局引用变量中,以便可以调用该实例。 – Shadowfox