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