gpt4 book ai didi

AngularJS 找不到我的 Controller

转载 作者:行者123 更新时间:2023-12-03 07:01:12 24 4
gpt4 key购买 nike

我知道这是一个常见问题,但我无法通过阅读之前提出的问题找到解决方案。

我实际上遇到了两个错误,但第一个错误是关于 Angular 无法找到我的 Controller 。

http://errors.angularjs.org/1.4.2/ $injector/nomod?p0=myApp.controllers

我的目录结构如下所示:

.
└── static
├── index.html
├── js
│   ├── app.js
│   └── controllers.js
├── lib
│   └── angular-ui-router.min.js
└── partials
├── view1.html
└── view2.html

我的索引文件如下所示:

<html ng-app="myApp">
<head>
<meta charset="UTF-8">
<title>Hello AngularJS</title>
</head>
<body>
<div ui-view></div>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular.min.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.2/angular-route.min.js"></script>
<script type="text/javascript" src="lib/angular-ui-router.min.js"></script>
<script type="text/javascript" src="js/controllers.js"></script>
<script type="text/javascript" src="js/app.js"></script>
</body>
</html>

我的 app.js 文件如下所示:

(function(angular) {

var app = angular.module('myApp', ['ui.router', 'myApp.controllers']);

app.config(function($stateProvider) {
$stateProvider.state('view1', {
url: '/view1',
templateUrl: 'partials/view1.html',
controller: 'View1Controller'
}).state('view2', {
url: '/view2',
templateUrl: 'partials/view2.html',
controller: 'View2Controller'
});
}).run(function($state) {
$state.go('view2');
});

})(angular);

我的controller.js 文件如下所示:

(function(angular) {
var app = angular.module('myApp.controllers');

app.controller('View1Controller', function($scope) {
$scope.data = 'my view 1';
});

app.controller('View2Controller', function($scope) {
$scope.data = 'my view 2';
});

})(angular);

还有第二个error这可能是相关的。

如上所述, Angular 无法找到我的 Controller 。有人知道我做错了什么吗?如果我需要粘贴更多代码,请告诉我。

我已经在 github 上分享了代码,以防有人发现它更容易处理。

https://github.com/tonsV2/angular-ui.route/tree/master/src/main/resources/static

最佳答案

Angular angular.module()是一个 setter 和一个 getter。根据 angular.module 文档(通过 @DanAtkinson's comment ):

Passing one argument retrieves an existing angular.Module, whereas passing more than one argument creates a new angular.Module.

setter/getter

var app = angular.module('myApp.controllers');使用 module 作为 getter。

失败是因为模块 myApp.controllers尚未创建。

二传手

要将其用作 setter ,请将其更改为

var app = angular.module('myApp.controllers', []); // note the []

关于AngularJS 找不到我的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32805464/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com