我想从这个网址获取书籍名称
http://localhost:3000/greeting
这是我的nodejs Expressjs服务器代码
var express = require('express');
var app = express();
app.get('/greeting', function (req, res) {
var books = {
id : 555,
name : 'Antony',
title : 'Do or Die',
price : {
inr : 500,
dollar : 5
}
};
res.json(books);
});
app.listen(3000, function () {
console.log('Example app listening on port 3000!')
});
这段代码是我的 Angularjs 网络服务调用,名为hello.js
var app = angular.module('booksInventoryApp', []);
app.controller('booksCtrl', function($scope, $http) {
$http.get("http://localhost:3000/greeting")
.then(function(response) {
$scope.data = response.data;
console.log("result"+response.data);
});
});
这是我的网页代码
<!doctype html>
<html ng-app="demo">
<head>
<title>Hello AngularJS</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="hello.js"></script>
</head>
<body>
<article ng-app="booksInventoryApp">
<section ng-controller="booksCtrl">
<h2 ng-repeat="book in data.books">{{book.name}}</h2>
</section>
</article>
</body>
</html>
我想获取书名...提前谢谢..
您的主app
名称是booksInventoryApp
因此您应该包含ng-app="booksInventoryApp"
并且每个页面都有一个ng-app
指令。
所以尝试改变
ng-app="demo"
自
ng-app="booksInventoryApp"
并从<article ng-app="booksInventoryApp">
中删除ng-app="booksInventoryApp"
你现在看到的行为是什么?有没有错误?
代码对我来说看起来不错。单个页面中可以有多个角度应用程序(如果这是您想要的)。
我看到的问题是响应是 JSON 对象而不是数组。所以在HTML中,你必须简单地改变
<h2 ng-repeat="book in data.books">{{book.name}}</h2>
自
<h2>{{data.name}}</h2>
它应该完美地工作。
<div ng-app="booksInventoryApp">
中对 booksInventoryApp 模块的引用来自angular.module('booksInventoryApp', [])
。所以你必须使用ng-app="booksInventoryApp"
而不是ng-app="demo"
,并从文章标签中删除ng-app
"你的模块的名称是你给它作为你的第一个参数的任何名称,在本例中'booksInventoryApp'
。将ng-app放在html中,让我们知道要用作主应用程序模块的模块。它知道你想要哪一个的方法是匹配名称,否则它将无法找到它。
更多解释在这里 ng-app