AngularJS - 在页面加载时将数据引导到服务中

时间:2013-03-20 20:53:13

标签: angularjs bootstrapping angularjs-service

在angularjs应用程序中,我尝试使用自定义服务来保存应用程序的主要数据“项目”。但是,我想在初始页面加载时将数据引导到服务中,以避免向服务器发出单独的ajax请求。这样做最干净的方法是什么?

以下是我的服务片段供参考:

app.factory('items', function() {
    var itemsService = {},
        items = [];

    itemsService.list = function() {
        return items;
    };

    itemsService.add = function() {
        /* ... */
    };

    return itemsService;
});

在后端我使用node.js + expressjs + jade,所以我会使用以下内容将数据注入页面:

!{JSON.stringify(items)}

2 个答案:

答案 0 :(得分:3)

将来自服务器的引导数据放入全局JavaScript变量中。让您的服务将items分配给该全局变量(或将数据复制到items)。

答案 1 :(得分:1)

这样的事情怎么样:

app.run(['items', function (items) {
   items.load();
}])

这假设您的items服务具有load函数(或类似函数),它使用$ http或$ resource执行实际的Ajax工作。