【问题标题】:AngularJS Module Injection logic understandAngularJS模块注入逻辑理解
【发布时间】:2016-12-31 11:26:03
【问题描述】:

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

那是我的 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);
});

这是 date-time-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;
})

显然我知道我可以创建一个包含两者的单个 .js 文件并将其调用到我的视图中,但我想了解从这个“愚蠢”应用程序开始的依赖项注入背后的逻辑,然后将其扩展为稍微大一点的应用程序。 期待大家的回答!

【问题讨论】:

    标签: javascript angularjs dependencies


    【解决方案1】:

    我们不注入 js 文件。我们注入依赖项。

    如果您正在研究如何在角度上下文初始化后在运行时动态注入模块——这里是http://blog.getelementsbyidea.com/load-a-module-on-demand-with-angularjs/ 我很久以前就实现了这一点,我从服务器动态调用模块并根据用户所在的屏幕将其注入到我的角度上下文中。

    【讨论】:

    • 那么,如果我在文件中有依赖项,我如何在我的控制器文件中调用它?
    • myApp.controller('myController', function($scope, $window,$interval,$location,ABCD) -------->> 这里 ABCD 是你的依赖注射..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-28
    • 2017-07-13
    相关资源
    最近更新 更多