Angularjs无法获得eggheadio $ http示例

时间:2014-08-05 14:21:44

标签: javascript angularjs

我正在尝试按照以下https://egghead.io/lessons/angularjs-http

中的教程进行操作

我得到的错误是TypeError:无法读取null

的属性“1”

我有以下目录结构:

expressproject/
    index.js
angularproject/
    app.js
    index.html

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

var express = require('express');
var http = require('http');
var cors = require('cors');

var app = express();
app.use(express.bodyParser());
app.use(cors());
app.set('port', 3000);

app.get('/users', function (req, res) {
  res.send({hello: 'World'})
})

http.createServer(app).listen(app.get('port'), function() {
  console.log('Express server listening on port ' + app.get('port'));
});

我的app.js文件如下:

var app = angular.module("app", []);

app.controller("AppCtrl", function($http) {
    $http.get('http://localhost:3000/users')
    .success(function(data) {
        console.log(data)
    })
})

我的index.html文件如下:

<!DOCTYPE html>
<html>
<head>
    <title>Http test</title>
</head>
<body ng-app="app" ng-controller="AppCtrl in app">

<script src='angular.js'></script>
<script src='app.js'></script>
</body>
</html>

当我运行快速服务器并将我的网络浏览器指向

(http://localhost:3000/users) 

我明白了:

{
  "hello": "World"
}

这是我所期待的。 我已经尝试使用python SimpleHTTPServer运行angularjs部分,没有任何服务器,我仍然得到相同的错误。

1 个答案:

答案 0 :(得分:0)

您的ng-controller语法不正确,而不是:

ng-controller="AppCtrl in app"

应该只是:

ng-controller="AppCtrl"

或者如果您需要别名:

ng-controller="AppCtrl as ctrl"

编译器无法识别in令牌,因此发生了错误。