2015-06-19 95 views
0

我有一个通过一个服务从json文件中获取的项目列表。 在列表结尾处,按钮可以让您将每个项目添加到包含您单击/添加的元素的列表中。 只有在不超过项目可用性数量时,才能添加相同的项目。ng-repeat显示json对象Angular JS

我已经做了一个代码,基本上每次添加一个项目时创建一个对象,问题是对象构建不太容易迭代(I have made another question regarding this problem..)。 当我渲染在视图上看起来就像是一种对象的字符串化

下面是代码的一部分:

视图:

<div ng-repeat="session in sessiones"> 
    Date: {{session.date | dateformated }} &nbsp 
    Availability: {{session.availability}} &nbsp 
    <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); 
    } 
} 

Here's my try on fiddle

重要更新--->下面是ilustrates非常清楚我想要做的一个例子:一样的,而不是重复的元素,但是当一个元素已经在名单上我都数不过来的数的时间,它已添加

Simple cart list

+0

小提琴似乎缺少了'sessions'范围变量 –

+0

我不知道如何连接JSON的在小提琴...对不起! –

+0

@FrnndSgz只需将JSON字符串作为变量添加到.js文件即可。 – doldt

回答

1

我固定它。 Fiddle

  • 我没有看到ADD +链接,所以我一直玩,直到它出现。
  • 我怀疑索引的麻烦,但它没事。
  • 我注意到$范围是在JavaScript中的不同颜色,然后注意到你分配addItem的东西是不是你的控制器。

所以最终我刚搬到这下到谷底,封闭的addItem:

}); 
+0

我已经更新了小提琴,现在有了你的帮助,我终于可以完全重现我的问题...我要编辑原始问题与链接。 –