Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未调用角度模块配置_Javascript_Angularjs - Fatal编程技术网

Javascript 未调用角度模块配置

Javascript 未调用角度模块配置,javascript,angularjs,Javascript,Angularjs,我正试图绕过AngularJS,结果遇到了一个问题。 var myApp = angular.module('myApp', ['myApp.services']); myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) { console.log('Configuring module "myApp"'); $routeProvide

我正试图绕过AngularJS,结果遇到了一个问题。

var myApp = angular.module('myApp', ['myApp.services']);

myApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {

    console.log('Configuring module "myApp"');

    $routeProvider.when('/dashboard', {templateUrl: 'partial/dashboard', controller: DashboardController});
    $routeProvider.when('/menu', {templateUrl: 'partial/other', controller: OtherController});
    $routeProvider.otherwise({redirectTo: '/dashboard'});

    $locationProvider.html5Mode(true);
 }]);
据我所知,在加载模块时应该调用配置函数但事实并非如此

我在
标签上有
ng app=“myApp”
指令。以及在正文结束标记之前以正确顺序加载的脚本(只要有必要)


我通常看到通过将它们链接在一起来应用路由:

$routeProvider
    .when('/dashboard', {templateUrl: 'partial/dashboard', controller: DashboardController})
    .when('/menu', {templateUrl: 'partial/other', controller: OtherController})
    .otherwise({redirectTo: '/dashboard'});

我不明白为什么你的服务不起作用,但可能值得一试。

我用来定义服务的方法似乎覆盖了我的
myApp
模块

这是最重要的一行

angular.module('myApp', function ($provide) ...
这段代码只是重新定义了
myApp
模块,并添加了一个函数来配置该模块


我将service.js重构为这个简化版本,它开始工作

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

myApp.factory('securityService', function () {
    return SomeFancyServiceObject();
});

我的html标签中缺少了ng app=“myApp”-我在阅读您的问题时意识到了这一点:-)

是的。。。应该这样。您确定正在加载所有脚本吗?控制台中有错误吗?我刚刚将您的代码发布到a以检查是否有任何输入错误,它的工作方式与预期的一样。我只能怀疑你的
myApp.services
,你会发布它吗?@caioton-这确实是我服务中的一个编码错误。谢谢你的指点。我看到你在下面贴出了正确的答案;然而,上面的一个微小修正是当
config
运行时。与第一次注入时运行的服务不同,
config
块在AngularJS引导中的指定点运行。换句话说,
config
将始终运行,并且始终在您的应用程序执行之前运行。@joshdavidimiller-这对所有模块都有效还是只对注入器实例化的模块有效?注入器不会实例化模块;服务确实如此。但是,
config
将为您的应用程序模块和它声明为依赖项的任何模块以及它们的所有依赖项等执行。问题是永远不会调用config(fn)。所以函数中的代码永远不会执行。谢谢,这真的节省了我很多时间!今天遇到了这个。我通常都很小心,但我处理的是多个模块,直到我来到这里,我才明白这一点……然后就很明显了。抢手货非常感谢。在我的例子中,我对app.js和MyControllers.js使用了相同的模块名。我在MyControllers.js中添加了一个空[],并意识到它覆盖了主模块。。诀窍是为模块使用不同的名称。同样的道理。5年后,你的问题和答案救了我的***一命。我的头撞在墙上已经有4个多小时了,我自己永远也想不到这一点。我在一个控制器的.module()声明上有一些空括号,我一定是心不在焉地添加了它,完全忘记了它的存在。如果没有这个答案,我永远不会注意到。谢谢你。我犯了一个多么小的错误,花了我一个小时的调试,浪费了一段时间——零错误消息。。并且意识到app.config甚至没有在创建新应用时被调用。。。。这一切都是因为我笨手笨脚地使用了
np-app=
而不是
ng-app
,我正要拆掉ngroute并拉入ui路由器!哎呀。我必须要一个角码拼写检查器。。谢谢你的回答
angular.module('myApp', function ($provide) ...
var myApp = angular.module('myApp');

myApp.factory('securityService', function () {
    return SomeFancyServiceObject();
});