使用nodejs在angularjs中需要一个json文件

时间:2014-02-28 08:53:04

标签: javascript json node.js angularjs

我正在使用NodeJS和AngularJS。

在Angular中我想引用一个json文件,并将json的各个部分分成不同的控制器。

目前我在控制器中使用http.get(见下文)。

var app = angular.module('app', []);

app.controller('introCtrl', function ($scope, $http) {
   $http.get('src/data_json.js').success(function(data) {
    $scope.intro = data;
});

这将返回第一个控制器中的整个json对象。但是我想要json文件,将其存储为变量,并让多个控制器引用不同的部分。

有没有办法使用nodejs将json文件传递给角度控制器还是有更好的方法来使用角度来要求json文件吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

一个好的策略是将http请求存储在服务Service中。然后,您可以通过简单地注入它来为所有控制器提供该服务。

如果您使用REST服务,则还应考虑使用$resource

答案 1 :(得分:0)

谢谢 - 我最后像你建议的那样使用了工厂服务......

var App = angular.module('App', []);

// Setting up a service to house our json file so that it can be called by the controllers
App.factory('service', function($http) {
    var promise;
    var jsondata = {
        get: function() {
            if ( !promise ) {
                var promise =  $http.get('src/data_json.js').success(function(response) {
                    return response.data;
                });
                return promise;
            }
        }
    };
    return jsondata;
});




App.controller('introCtrl', function (service , $scope) {
    service.get().then(function(d) {
        $scope.header = d.data.PACKAGE.ITEM[0]
    })
});

App.controller('secondCtrl', function (service , $scope) {
    service.get().then(function(d) {
        $scope.title = d.data.PACKAGE.ITEM[1]
    })
});