【问题标题】:ng-repeat showing json object Angular JSng-repeat 显示 json 对象 Angular JS
【发布时间】: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 }} &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

重要更新--->这是一个很好地说明我想要做的例子:只是一样,但当一个元素已经在列表中时,我必须计算它的次数,而不是重复元素已添加

Simple cart list

【问题讨论】:

  • 小提琴似乎缺少sessions范围变量
  • 我不知道如何在小提琴上附加 json ......对不起!
  • @FrnndSgz 只需将 JSON 字符串作为变量添加到 .js 文件中。
  • @doldt 我试过了...仍然一无所获link
  • @FrnndSgz 将脚本包含方法从 onload 更改为 noWrap,然后基本绑定将起作用。此外,您试图在控制器之外引用 $scope,这会引发额外的错误。

标签: javascript json angularjs list


【解决方案1】:

我修好了。 Fiddle

  • 我没有看到 ADD+ 链接,所以我一直玩到它出现为止。
  • 我怀疑索引有问题,但没关系。
  • 我注意到 $scope 在 javascript 中的颜色不同,然后注意到您将 addItem 分配给了不是您的控制器的东西。

所以最后我只是把它移到了底部,把 addItem 括起来:

});

【讨论】:

  • 我已经更新了小提琴,现在在你的帮助下,我终于可以完全重现我的问题了...我将使用链接编辑原始问题。
猜你喜欢
  • 2017-04-15
  • 2023-03-09
  • 2016-11-28
  • 1970-01-01
  • 2016-04-07
  • 1970-01-01
  • 1970-01-01
  • 2015-04-01
  • 1970-01-01
相关资源
最近更新 更多