angularjs – 重新打开并将依赖项添加到已经引导的应用程序

前端之家收集整理的这篇文章主要介绍了angularjs – 重新打开并将依赖项添加到已经引导的应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法注册一个已延迟的依赖到已经引导的角模块?这里是我的意思:

说我有一个网站范围的角度应用程序,定义为:

// in app.js
var App = angular.module("App",[]);

并在每一页:

<html ng-app="App">

后来,我重新打开应用程序,以根据当前页面的需要添加逻辑:

// in reports.js
var App = angular.module("App")
App.controller("ReportsController",['$scope',function($scope) {
  // .. reports controller code
}])

现在,说,那些按需的逻辑位也需要自己的依赖(如ngTouch,ngAnimate,ngResource等)。如何将它们附加到基本应用程序?这似乎不工作:

// in reports.js
var App = angular.module("App",['ui.event','ngResource']); // <-- raise error when App was already bootstrapped

我意识到我可以提前做一切,即 –

// in app.js
var App = angular.module("App",'ngResource','ngAnimate',...]);

或者自己定义每个模块,然后将所有内容注入主应用程序(see here for more):

// in reports.js
angular.module("Reports",'ngResource'])
.controller("ReportsController",function($scope) {
  // .. reports controller code
}])

// in home.js
angular.module("Home",['ngAnimate'])
.controller("HomeController",'$http',function($scope,$http){
  // ...
}])

// in app.js,loaded last into the page (different for every page that varies in dependencies)
var App = angular.module("App",['Reports','Home'])

但这将需要我每次使用当前页面的依赖性初始化应用程序。

我喜欢在每个页面中包含基本的app.js,并简单地介绍每个页面(reports.js,home.js等)所需的扩展,而无需在每次添加删除某些内容修改引导逻辑。

当应用程序已经被引导时,是否有一种方法来引入依赖关系?什么是被认为是惯用的方式(或方式)做到这一点?我倾向于后一个解决方案,但想看看我描述的方式是否也可以做到。谢谢。

解决了这样:

再次引用应用程序:

var app = angular.module('app');

然后将新的需求推送到requirements数组:

app.requires.push('newDependency');

猜你在找的Angularjs相关文章