2016-08-24 91 views
0

我正在学习AngularJS和他使用模块分离问题。 我创建了一个简单的应用程序,它由一个index.html视图和两个文件.js组成,一个用于控制器,另一个用于我自己的服务。 现在的问题是:我如何将包含服务的.js文件注入到控制器的文件中?AngularJS模块注入逻辑了解

这是我controller.js

var myApp = angular.module('myApp',[]); 
myApp.controller('myController', function($scope, $window,$interval,$location) { 
    $scope.appUrl = $location.absUrl(); 
    $scope.port = $location.port(); 
    $scope.protocol = $location.protocol(); 
    $scope.winWidth = $window.innerWidth; 
    $interval(function(){ 
     $scope.winWidth = $window.innerWidth; 
    }, 1); 
}); 

,这是日期时间service.js

var service = angular.module('myApp',[]); 
service.factory('dateTimeService', function() { 
    var dateTimeSvc = {}; 
    dateTimeSvc.getData = function(){ 
     return new Date().toDateString(); 
    } 
    dateTimeSvc.getTime = function(){ 
     return new Date().toTImeString(); 
    } 
    return dateTimeSvc; 
}) 

Obviosly我知道我可以创建一个包含一个单一的.js文件都和调用它到我的视图中,但我想了解从这个“愚蠢的”应用程序开始的依赖注入背后的逻辑,然后将其扩展到一个更大的应用程序。 非常感谢你们所有的答案!

回答

0

我们不注入js文件。我们注入依赖关系。

如果您正在寻找到如何在运行时动态地注入模块后角上下文initialisized - 它在这里http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/ 我已经实现此前不久,我从动态调用服务器模块和它注入到我的基于上下文的角度哪个屏幕的用户在。

+0

因此,如果我有一个文件的依赖项,我怎么能在我的控制器文件中调用它? – Wallcraft

+0

myApp.controller('myController',function($ scope,$ window,$ interval,$ location,ABCD)-------- >> 这里ABCD是你注入的依赖关系。 – jayanthCoder