我想在我的 Web 应用程序生成器设置中使用 AngularJS。 (我知道有一个 Angular 生成器,但我更喜欢 Webapp 生成器的文件夹结构)。
我已经使用 bower install angular --save
安装了 Angular,并在我的索引中引用了 js 文件:
<!-- build:js scripts/vendor.js -->
<!-- bower:js -->
<script src="/bower_components/jquery/dist/jquery.js"></script>
<script src="/bower_components/angular/angular.js"></script>
<!-- endbower -->
<!-- endbuild -->
<!-- build:js scripts/main.js -->
<script src="scripts/main.js"></script>
<script src="scripts/controllers/MainController.js"></script>
<!-- endbuild -->
当我运行 gulpserve 时,一切都运行良好。
但是,当我运行 gulp default
(并在复制 dist
文件夹的内容后尝试在其他地方打开网站)时,我在注入(inject) Controller 时遇到错误:
Error: [$injector:unpr] Unknown provider: eProvider <- e <- MainCtrl
http://errors.angularjs.org/1.5.0/$injector/unpr?p0=eProvider%20%3C-%20e%20%3C-%20MainCtrl
这是我的文件夹结构:
app
-> scripts
->-> Controllers
->->-> MainController.js
->-> main.js
这是 main.js:
var app = angular.module('PentiaExercise', []);
这是 MainController.js:
/**
* Created by kv on 24/02/16.
*/
app.controller('MainCtrl', function ($scope) {
$scope.user = {};
$scope.showSuccess = false;
$scope.registerFormSubmitted = false;
//Some other code...
});
可能出了什么问题?和/或在使用 Yeoman 的 webapp 生成器的设置中使用 Angular 的正确方法是什么?
最佳答案
如果您要缩小代码,请尝试以下操作:
app.controller('MainCtrl', ['$scope', function ($scope) {
$scope.user = {};
$scope.showSuccess = false;
$scope.registerFormSubmitted = false;
//Some other code...
}]);
当代码被缩小时,...function ($scope) 被更改为类似 function (e) 的东西,然后 Angular 可以找到 e 来注入(inject),但是如果你像这样使用: ['$scope', function ( $scope) { ...缩小后的代码将类似于 ['$scope', function (e) {.因此,当 Angular 进行注入(inject)时,他会找到“$scope”并注入(inject) e 变量。
关于javascript - 如何将 angularJS 与 Yeoman 的 webapp-generator 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35626308/