0
私のプロジェクトでは、アプリケーションのすべてのモジュールに共通のデータオブジェクトを維持する必要があります。knockoutjs + requirejsでアプリのワイドデータを維持する方法
これは、すべてのREST APIとアプリのワイドデータを保存する場所です。 (Reduxの反応で店舗のようなもの)
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: ''
}
}
});
私はlogin
とlogout
サービスを呼び出すためにViewModel
ファイルにdataService.js
ファイルを必要としています。
dataService.actions.loginUser(data)
.then(function(data) {
dataService.user.isLoggedIn = true; // I changed the app wide data here
}
});
私はいくつかの他のViewModelにdataService
を必要とするとき、私の問題は、dataService.user.isLoggedIn
の値がデフォルト値として設定されています。これをアプリのワイドデータとしてどのように保存できますか?
私は実際にはわかりませんが、最初の 'App'を作成するdataServiceを呼び出すたびに新しいインスタンスを作成して、グローバル参照変数に格納して呼び出すことができるようにしています。 – Shadowfox