0

全部,

TL:博士

  • Appcelerator 云服务
  • 休息
  • 带有数组的自定义对象
  • 使用 $inc 原子增量运算符更新数组中的属性

细节:

我正在使用 AngularJS 通过 REST 访问 Appcelerator 云服务。我有一个复杂的自定义对象(请参阅下面的 Gist 链接)。我的自定义集合将包含每个事件的这些对象之一。每个项目都有团队,每个团队都有参赛者。每个团队和选手在项目环节进行比赛,观众对团队和选手的表现进行投票。我想更新团队和参赛者的分数,但我不知道如何设置字段值才能更新分数。

我已经用我所有与此问题相关的文件创建了一个要点。如果有人可以请提供一些帮助,我将不胜感激。

4

2 回答 2

0

演示

让您拥有的整个数组称为“arr”;

var arr= {....};

让我们处理位于顶部第三个键的段。然后在您的 HTML 中,它看起来像这样:

    <table>
        <tr ng-repeat="segment in arr[0].segments">
            <td ng-bind="segment.name"></td>
            <td>
                <input type="text" ng-model="segment.name">
            </td>
            <td ng-bind="segment.score"></td>
            <td style='cursor:pointer;' ng-click="segment.score = segment.score+1">Add Score</td>
        </tr>
    </table>

您的控制器将类似于:

var TodoCtrl = function ($scope) {
    $scope.arr = arr;
}

它只是一个对象数组,因此可以将其视为字符串或数字数组,但具有属性。例如,如果你想输出第二个数组中的所有参赛者,你会做类似的事情

arr[1].contestants.forEach(function(element, index, object){
    console.log(element.id, element.name); // name would start with Gene Collier
    element.segments.forEach(function(_el){
            console.log('name', _el.name, 'score', _el.score);
    });
}

我希望这有帮助。

于 2015-01-06T02:24:04.267 回答
0

我放弃了,将乐谱对象更改为平面文档。我现在有每个赛事/团队/赛段或赛事/参赛者/赛段的评分文件。这应该允许分数属性轻松更新,因为分数文档中现在没有散列或数组。

于 2015-01-28T17:44:33.420 回答