5

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)}
4

2 に答える 2

3

サーバーからブートストラップされたデータをグローバル JavaScript 変数に入れます。サービスitemsにそのグローバル変数を割り当てる (またはデータを にコピーするitems) ようにします。

于 2013-03-20T21:16:07.937 に答える
1

このようなものはどうですか:

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

これは、itemsサービスに、load$http または $resource を使用して実際の Ajax 作業を行う関数 (またはそれに類するもの) があることを前提としています。

于 2013-03-20T21:03:01.950 に答える