在显示使用AngularJS获取的记录时,如何在视图内部循环?

时间:2013-12-17 22:57:45

标签: javascript angularjs

我开始学习AngularJS。我对JavaScript / jQuery很有经验,但我现在正在理解AngularJS的基础知识。对于任何有一点经验的人,我都有一个简单的问题。

我有一个表格,显示“用户”(来自GET查询)。

每个“用户中的用户”都会有以下架构:{name:'',rating:4,reviews:10}

等级是从1到5的int,其中每个代表一颗星(5颗可能的恒星中)。对于评级中的每个int,我想绘制一个显示单个星的IMG标记。

所以我有这样的事情:

<tbody>
    <tr ng-repeat="user in users">
        <td>{{user.name}}</td>
        <td>
            <img src="star.jpg" ng-repeat="n in 1 .. user.rating">
        </td>
        <td>{{user.reviews}}</td>
    </tr>
</tbody>

知道如何正确设置该循环吗?显然这不起作用。我希望使用{{user.rating}}来确定需要绘制多少个星星。

感谢您的协助。

1 个答案:

答案 0 :(得分:2)

使用ng-repeat,我看到的唯一方法是在作用域中定义一个函数,返回一个包含n个元素的数组:

$scope.stars = function(amount) {
    var result = [];
    for (var i = 0; i < amount; i++) {
         result.push(i);
    }
    return result;
}

然后,在视图中,使用

ng-repeat="star in stars(user.rating)"

但您也可以定义自己的指令,该指令循环并显示指令的主体N次。