AngularJS中的cartController:
angular.module('demo', [])
.controller('Hello', function($scope, $http) {
$scope.refreshCart = function() {
$http.get('http://localhost:8080/rest/cart')
.success(function(response) {
$scope.items = response.data;
});
};
$scope.removeFromCart = function(productId) {
$http.delete('/delete/' + productId)
.success(function (data) {
$scope.refreshCart();
});
};
$scope.addToCart = function(productId) {
$http.put('/add/'+ productId)
.then(function(response) {
$scope.refreshCart();
});
};
});
第一个HTML文件(这里一切正常):
<a href = "#" type="button" class="btn btn-info" th:attr="
ng-click='addToCart(' + ${product.id} + ')'" data-toggle="modal" data-target="#myModal">
Add to cart</a>
第二个HTML文件:
<html lang="en" xmlns:th="http://www.thymeleaf.org" ng-app="demo">
<script src="http://localhost:8080/cartController.js"></script>
<body ng-controller="Hello">
(...)
<tbody ng-repeat="item in items.cartItemList">
<div class="row">
<h4 class="nomargin">{{item.product.name}}</h4>
<p>{{item.product.description}}</p>
</div>
<td data-th="Price">{{item.price}} PLN</td>
<td data-th="Quantity">{{item.quantity}}</td>
</tbody>
(...)
所以我需要做的是:
1)点击第一个HTML文件中的按钮,然后将JSON加载到$ scope.items(它可以工作)。
2)显示第二个HTML文件,从$ scope.items加载JSON,并向用户查看此JSON。
但是当我得到第二个HTML文件并尝试显示数据时,$ scope.items为空。你能帮忙吗?
答案 0 :(得分:1)
您是否在浏览器中出现控制台错误?也许你必须在控制器上将items
定义为空数组,如下例所示......
.controller('Hello', function($scope, $http) {
//define empty array
$scope.items = [];
$scope.refreshCart = function() {
$http.get('http://localhost:8080/rest/cart')
.success(function(response) {
$scope.items = response.data;
});
};
//...
}
答案 1 :(得分:0)
我建议你使用广播和发射。使用这些在控制器之间传递数据。如果要将数据从父控制器传递到子控制器,则应使用$ broadcast。如果反过来就会发出。