我试图学习Angular 1.7中的绑定机制,因此我建立了一个简单的示例。
在此示例中,打算为每个产品名称打印一个h4
元素。
我的产品的JSON文件(dummy.json)
{
"ProductName": "Test Product 1",
"QuantityPerUnit": "100"
}, {
"ProductName": "Test Product 2",
"QuantityPerUnit": "10"
}, {
"ProductName": "Test Product 3",
"QuantityPerUnit": "25"
}
在我的ProductController中,我想将JSON数据绑定到$scope.products
ProductController.js
angular.module("angularApp", [])
.controller("ProductController", function ($scope) {
$.getJSON("./dummy.json", function (json) {
$scope.products = json;
});
});
在我的HTML中,我执行以下操作来使绑定起作用:
定义应用程序ng-app="angularApp"
在正文标签ng-controller="ProductController"
我想通过ng-repeat="product in products"
遍历我的产品,并且我使用的是数据绑定符号Angular说我必须使用{{ }}
index.html
<!DOCTYPE HTML>
<html ng-app="angularApp" lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- Angular 1.7.8 -->
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.7.8/angular.min.js"></script>
<script src="./js/ProductController.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css" integrity="sha384-oS3vJWv+0UjzBfQzYUhtDYW+Pj2yciDJxpsK1OYPAYjqT085Qq/1cq5FLXAZQ7Ay" crossorigin="anonymous">
<link rel="stylesheet" href="./css/style.css">
</head>
<body ng-controller="ProductController">
<div class="container">
<div class="list-group">
<h4 ng-repeat="product in products">{{ product.ProductName }}</h4>
</div>
</div>
</body>
</html>
控制台没有显示任何错误,当我检查开发人员工具(AngularJS Batarang)时,我注意到在我的身体标签上我的products
存在。
我忘记或做错了什么? 任何指向正确方向的指示都值得赞赏。
预先感谢
答案 0 :(得分:4)
第一个问题是JSON文件:它不是数组。
应该是这样的:
levels
并且如注释中所示,不确定您为什么使用$ getJson,但这应该可以工作:
count
使用Angular JS http,您应该能够获取数据,但是必须注入$ http。
在这里您还可以找到一个Plunker