加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

AngularJS种子:将JavaScript放入单独的文件(app.js,controllers

发布时间:2020-12-17 09:13:56 所属栏目:安全 来源:网络整理
导读:我使用 angular-seed模板来构造我的应用程序。最初,我把所有的JavaScript代码放在一个单一的文件,main.js.此文件包含我的模块声明,控制器,指令,过滤器和服务。应用程序工作正常,像这样,但我担心可扩展性和可维护性,因为我的应用程序变得更加复杂。我
我使用 angular-seed模板来构造我的应用程序。最初,我把所有的JavaScript代码放在一个单一的文件,main.js.此文件包含我的模块声明,控制器,指令,过滤器和服务。应用程序工作正常,像这样,但我担心可扩展性和可维护性,因为我的应用程序变得更加复杂。我注意到角种子模板有其中每个的单独的文件,所以我试图将我的代码从单个main.js文件分发到每个其他文件中提到的问题的标题,并在应用程序中找到/ js目录下的 angular-seed模板。

我的问题是:我如何管理依赖以使应用程序工作?现有的文档here在这方面不是很清楚,因为给出的每个示例显示单个JavaScript源文件。

我有一个例子是:

app.js

angular.module('myApp',['myApp.filters','myApp.services','myApp.controllers']);

controllers.js

angular.module('myApp.controllers',[]).
    controller('AppCtrl',[function ($scope,$http,$filter,MyService) {

        $scope.myService = MyService; // found in services.js

        // other functions...
    }
]);

filters.js

angular.module('myApp.filters',[]).
    filter('myFilter',[function (MyService) {
        return function(value) {
            if (MyService.data) { // test to ensure service is loaded
                for (var i = 0; i < MyService.data.length; i++) {
                    // code to return appropriate value from MyService
                }
            }
        }
    }]
);

services.js

angular.module('myApp.services',[]).
    factory('MyService',function($http) {
        var MyService = {};
        $http.get('resources/data.json').success(function(response) {
            MyService.data = response;
        });
        return MyService;
    }
);

main.js

/* This is the single file I want to separate into the others */
var myApp = angular.module('myApp'),[]);

myApp.factory('MyService',function($http) {
    // same code as in services.js
}

myApp.filter('myFilter',function(MyService) {
    // same code as in filters.js
}

function AppCtrl ($scope,MyService) {
    // same code as in app.js
}

如何管理依赖关系?

提前致谢。

该问题是由您在所有单独的文件中“重新声明”应用程序模块引起的。

这是什么应用程序模块声明(不确定声明是正确的术语)看起来像:

angular.module('myApp',[]).controller( //...

这是什么分配(不确定如果分配是正确的术语)到您的应用程序模块看起来像:

angular.module('myApp').controller( //...

注意缺少方括号。

所以,前一个版本,一个带方括号,应该只使用一次,通常在你的app.js或main.js.所有其他相关文件 – 控制器,指令,过滤器… – 应使用后一版本,一个没有方括号。

我希望这是有道理的。干杯!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读