【发布时间】:2015-06-19 22:35:06
【问题描述】:
我有一个通过一项服务从 json 文件中获取的项目列表。 在列表的末尾,一个按钮可以让您将每个项目添加到包含您单击/添加的元素的列表中。 只有在不超过可用商品数量的情况下才能添加相同商品。
我做了一个代码,基本上每次添加项目时都会创建一个对象,问题是对象构建不是很容易迭代(I have made another question regarding this problem..)。 当我在视图上渲染时,它看起来像是一种对象字符串化
下面是部分代码:
观点:
<div ng-repeat="session in sessiones">
Date: {{session.date | dateformated }}  
Availability: {{session.availability}}  
<a ng-click="addItem($index, event, session);" ng-show="addMore"> [Add to cart] </a>
<div ng-repeat="(key, value) in cartItems">
<h1> {{value.sessions}})</h1>
</div>
控制器中的功能:
$scope.addItem = function(index, event, session) {
if (session.availability>0){
$scope.cartItems = $scope.cartItems || {};
$scope.cartItems[event.id] = $scope.cartItems[event.id] || {title:event.title, sessions:{}}
$scope.cartItems[event.id].sessions[session.date] = $scope.cartItems[event.id].sessions[session.date] || {num:0}
$scope.cartItems[event.id].sessions[session.date].num++;
session.availability-=1;
console.log($scope.cartItems);
}
}
重要更新--->这是一个很好地说明我想要做的例子:只是一样,但当一个元素已经在列表中时,我必须计算它的次数,而不是重复元素已添加
【问题讨论】:
-
小提琴似乎缺少
sessions范围变量 -
我不知道如何在小提琴上附加 json ......对不起!
-
@FrnndSgz 只需将 JSON 字符串作为变量添加到 .js 文件中。
-
@doldt 我试过了...仍然一无所获link
-
@FrnndSgz 将脚本包含方法从 onload 更改为 noWrap,然后基本绑定将起作用。此外,您试图在控制器之外引用 $scope,这会引发额外的错误。
标签: javascript json angularjs list