相关疑难解决方法(0)

重新打开并向已经引导的应用程序添加依赖项

有没有办法为已经引导的角度模块注入延迟依赖?这就是我的意思:

假设我有一个站点范围的角度应用程序,定义为:

// in app.js
var App = angular.module("App", []);
Run Code Online (Sandbox Code Playgroud)

在每一页:

<html ng-app="App">
Run Code Online (Sandbox Code Playgroud)

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

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

现在,说是逻辑的那些点播位中的一个还需要自己的依赖关系(如ngTouch,ngAnimate,ngResource,等).如何将它们附加到基础应用程序?这似乎不起作用:

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

我意识到我可以事先做好一切,即 -

// in app.js
var App = angular.module("App", ['ui.event', 'ngResource', 'ngAnimate', ...]);
Run Code Online (Sandbox Code Playgroud)

或者自己定义每个模块,然后将所有内容注入主应用程序(有关更多信息,请参阅此处):

// in reports.js
angular.module("Reports", ['ui.event', 'ngResource'])
.controller("ReportsController", ['$scope', …
Run Code Online (Sandbox Code Playgroud)

bootstrapping dependency-injection angularjs

89
推荐指数
3
解决办法
2万
查看次数

在config()模块中注入依赖项 - AngularJS

目前在app.js我有以下路线:

var gm = angular.module('gm', ['gm.services','gm.directives','gm.filters','gm.controllers','ngSanitize']);

gm.config(['$routeProvider', 'Path', function($routeProvider, Path) {

    $routeProvider.when('/login', { 
        templateUrl: Path.view('application/authentication/login.html'), 
        controller: 'authController' 
    });

    $routeProvider.when('/dashboard', { 
        templateUrl: Path.view('application/dashboard/index.html'), 
        controller: 'dashboardController' 
    }); 

    $routeProvider.otherwise({ 
        redirectTo: '/login'
    });

}]);
Run Code Online (Sandbox Code Playgroud)

我正在尝试注入Path依赖项,如您所见.虽然我收到一个错误,说它找不到这个提供商.我认为这是因为配置模块提供程序首先执行.下面是我在"services.js"中的路径提供程序定义

gm.factory("Path", function() {
  return {
    view: function(path) {
      return 'app/views/' + path; 
    },
    css: function(path) {
      return 'app/views/' + path; 
    },
    font: function(path) {
      return 'app/views/' + path; 
    },
    img: function(path) {
      return 'app/views/' + path; 
    },
    js: function(path) {
      return 'app/views/' + path; 
    },
    vendor: function(path) {
      return …
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

57
推荐指数
3
解决办法
8万
查看次数