0

在我的项目中,我需要为应用程序中的所有模块维护一个公共数据对象。

这是我存储所有 REST API 和应用程序范围数据的地方。(类似于 store 在 react redux 中的东西)

数据服务.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文件来调用loginlogout服务。

dataService.actions.loginUser(data)
                .then(function(data) {
                    dataService.user.isLoggedIn = true; // I changed the app wide data here                    
    }
                });

我的问题是,当我需要dataService在其他一些 ViewModel 中时,将 的值dataService.user.isLoggedIn设置为默认值。如何将其保存为应用程序范围的数据?

4

1 回答 1

-1

它可能正在为每个模块实例化一个新对象。您可以通过执行以下操作创建全局变量:

document.dataService = new dataService();

尝试使用上述方法。这可能会解决您的问题。

于 2017-08-04T14:49:51.950 回答