我想使用 Angular.js 作为在 Eclipse IDE 中创建的 Node Express 项目的前端。每当我尝试在单独的 js 文件中移动 Angular Controller 时,我都会收到 'angular' is not Defined
,也在 html 文件中 Cannot find module with name AngularApp.
是我收到的错误。
如何在 Eclipse IDE 的 Node Express 项目中的不同 javascript 文件中使用 Angular 脚本代码?
<小时/>这是我到目前为止所拥有的:
Angularapp.html
<!doctype html>
<html ng-app = "AngularApp">
<head>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<title>Login</title>
</head>
<body>
<h1>Login</h1>
<h2>Welcome!</h2>
<div ng-controller="AngularController">
Username: <input type="text" ng-model="usrname" value="1" /> <br />
Password: <input type="text" ng-model="password" value="2" /> <br />
<div>
<br />
<button type="button" ng-model="login" ng-click="signIn()">Login</button>
</div>
<script src="./routes/AngularApp.js"></script>
</div>
</body>
</html>
AngularApp.js
var usrname, paswd;
var AngularApp = angular.module('AngularApp');
function AngularController($scope, $http, $location, $window) {
$scope.signIn = function() {
usrname = $scope.usrname;
paswd = $scope.password;
var req = {
method : 'POST',
url : 'http://localhost:2222/login',
data : {
"username" : usrname,
"password" : paswd
}
}
$http(req).success(function(response) {
//alert(JSON.stringify(response));
if (response.login === "Success") {
$window.location = '/successLogin/'+response.username;
//req.url = '/successLogin/'+response.username;
} else {
$window.location = '/failLogin';
//req.url = '/failLogin';
}
}).error(function(error) {
alert("Error");
});
};
}
AngularApp.controller('AngularController', AngularController);
app.js
/**
* Module dependencies.
*/
var express = require('express')
, routes = require('./routes')
, user = require('./routes/user')
, http = require('http')
, path = require('path');
var app = express();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
// development only
if ('development' == app.get('env')) {
app.use(express.errorHandler());
}
app.get('/', routes.index);
app.get('/users', user.list);
http.createServer(app).listen(app.get('port'), function(){
console.log('Express server listening on port ' + app.get('port'));
});
最佳答案
您的问题是您正在尝试获取尚未定义的应用程序,您需要先定义它。
定义用途
var AngularApp = angular.module('AngularApp', []);
要获取已定义的应用程序使用
var AngularApp = angular.module('AngularApp');
关于javascript - Eclipse 中 Node Express 项目的 javascript 文件中未定义“Angular”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28804411/