1

私は学生で、自分のプロジェクトで angularJS を学んでいます。ばかげた質問については、ご容赦ください。

ng-repeat [ListChallengesICreated.challenges の myChallenge] を使用して一連の課題を反復しようとしています。その間、各課題で、別の関数を呼び出してバッジ ID の配列を渡そうとしています。これは、その特定の課題に属するバッジ URL の配列を返します。ng-repeat を使用して、そのバッジ URL を反復処理する必要もあります。 [filtered_badges のバッジ] 同様に、各課題に沿ってバッジを表示します。

ただし、2 番目の ng-repeat は、最初の ng-repeat が完了した後にのみ実行されます。そのため、すべてのチャレンジで、それぞれのバッジではなく、同じバッジの写真が表示されます。最初の実行中に 2 番目の ng-repeat を同時に実行する方法はありますか?

HTML コード:

<table class="table table-condensed" style="border-style:solid; border-color:blue;width:100%" ng-init="list_challenges_I_created();">
    <tr **ng-repeat="myChallenge in ListChallengesICreated.challenges" ** ng-init="get_badge(myChallenge.unlockRequiredBadges)">
        <td class="cMName">{{myChallenge.name}}</td>
        <td class="cMLocation" **ng-repeat="badge in filtered_badges" **>
            <input type="image" ng-src="{{badge.imageURL}}" />
        </td>
        <td class="cMSDate">{{myChallenge.startDate}}</td>
        <td class="cMEDate">{{myChallenge.endDate}}</td>
        <td class="cMReview">
            <div class="btn-group">
                <button class="btn btn-warning" a data-target="#statsModal" role="button" data-toggle="modal">Stats</button>
                <button class="btn btn-danger" a data-target="#tab2create">Edit</button>
            </div>
        </td>
        <td class="cMPublish">nmfv</td>
        <td class="cMShare">nmfnvm</td>
    </tr>
</table>

JS ファイル (バッジを返す)

$scope.get_badge = function (allRequiredBadges) {
    var path_badges = [];
    var get_all_badges = {};
    var all_badges = {};
    var all_badges_URL = [];
    $scope.filtered_badges = {};
    path_badges = allRequiredBadges;

    get_all_badges = $resource('/jsonapi/all_badges');
    get_all_badges.get({}, function (response) {
        all_badges = response;

        for (var j = 0; j < path_badges.length; j++) {
            for (var i = 0; i < all_badges.badges.length; i++) {
                if (all_badges.badges[i].id == path_badges[j]) {
                    all_badges_URL.push(all_badges.badges[i]);
                }
            }
        }
        $scope.filtered_badges = all_badges_URL;
    })
}
4

1 に答える 1