如何访问Angular服务文件之间的依赖文件?

时间:2015-07-09 19:20:45

标签: javascript angularjs ionic-framework

我想从我的服务文件return-serv.js访问另一个服务文件(chart-serv.js)中的数组。 你如何调用双括号[],第1行中的依赖文件?

返回-serv.js

 var app = angular.module('starter.return-serv', ['starter.chart-serv'])

 app.factory("ReturnData", function() {
     return {
         allData: function() {
             var data = starter.chart - serv.chartPricesUpTo6Hours;
             return data
         }
     }
 });

图表-serv.js

 var app = angular.module('starter.chart-serv', [])

 var chartPricesUpTo6Hours = {
     "10": {
         "1": 95,
         "2": 125,
         "3": 155,
         "4": 185,
         "5": 215,
         "6": 245
     },
     "20": {
         "1": 105,
         "2": 135,
         "3": 165,
         "4": 195,
         "5": 225,
         "6": 255
     }
 };

我不确定的部分是allData函数数据变量。你应该怎么称呼访问另一个文件?

2 个答案:

答案 0 :(得分:1)

您可以在chartserv.js中创建一个服务,通过将服务注入工厂,将对象传递给returnserv.js中的工厂。

chartserv.js:

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

app.service('FromServiceToFactory', function(){

    var chartPricesUpTo6Hours = {
     "10": {
         "1": 95,
         "2": 125,
         "3": 155,
         "4": 185,
         "5": 215,
         "6": 245
     },
     "20": {
         "1": 105,
         "2": 135,
         "3": 165,
         "4": 195,
         "5": 225,
         "6": 255
     }
    };

    return {chartPricesUpTo6Hours: chartPricesUpTo6Hours};

});

returnserv.js:

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

app.factory("ReturnData", function(FromServiceToFactory) {
    return {
        allData: function() {

            var valueFromService = FromServiceToFactory.chartPricesUpTo6Hours;
            return valueFromService;

        }
    }
});

答案 1 :(得分:0)

如果是java脚本文件,那么首先需要在索引html中加载它,如此

<script src="path/to/file/starter.chart.js">

然后在您的starter.chart.js中,您将获得模块或将其附加到另一个模块

所以angular.module('start.chart')

或者它是一个控制器angualr.module('要连接到'的模块).controller('controller name')

以下是我为您提供一般概念的应用程序的一些代码

我的app.module.js文件

angular.module('ffApp', ['ionic', 'controllers', 'services', 'angulartics', 'angulartics.google.analytics', 'ngCordova', 'pdf', 'ngSanitize', 'ngImgCrop', 'chart.js']);

我的app.controller.js文件

angular.module('controllers', ['ionic', 'ngCordova', 'services', 'pdf', 'ngSanitize', 'ngImgCrop', 'chart.js']);

我的home.controller.js文件

angular.module('controllers').controller('home.controller',
function ($scope, ffService, $state, $http, $ionicHistory, $ionicSideMenuDelegate, $rootScope, $cordovaCamera, $ionicPlatform, $ionicLoading)

所以当我的app.moduels被加载时,它依赖于我的控制器,所以它进入并获取控制器模块,我的控制器上的每一个都连接到控制器模块,所以它们都被加载,即使它们在单独的文件。也不要忘记在index.html中加载它