AngularJs Web service



我想从这个网址获取书籍名称

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

相关内容

  • 没有找到相关文章

最新更新