我使用ng-repeat
列出了所有产品,我希望打印出明星代码x
次,具体取决于product.rating
。因此,代码如下所示:
<p class="bs-rating"><i class="fa fa-star" ng-repeat="i in getRating({{ product.rating }}) track by $index"></i></p>
但是,它将product.rating
解析为String
:Error: [$parse:syntax] http://errors.angularjs.org/1.3.0-beta.8/$parse/syntax?p0=product.rating&p1=is
我试图删除大括号{{ }}
:
<p class="bs-rating"><i class="fa fa-star" ng-repeat="i in getRating(product.rating) track by $index"></i></p>
它给了我undefined
。我的getRating()
声明如下:
$scope.getRating = function(rating){
return new Array(parseInt(rating));
}
你能帮我弄清楚如何将变量传递给ng
标签吗?
答案 0 :(得分:1)
问题在于getRating函数,即生成数组。 我已在此链接rating using ng-repeat @jsfiddle
上开发了另一种解决方案<div ng-app="myApp" ng-controller="myCtrl">
<ol>
<li ng-repeat="product in products">
{{product.name}}
(
<span style="font-weight:bold" ng-repeat="i in
getRating(product.rating)">
x
</span>
)
</li>
</ol>
var myApp = angular.module("myApp", []);
myApp.controller("myCtrl", function($scope){
$scope.products = [
{name : "product1", rating:3},
{name : "product2", rating:5},
{name : "product3", rating:1}
];
$scope.getRating = function(rating){
var ratingArray = [];
for (var i = 1; i <= rating; i++) {
ratingArray.push(i);
}
return ratingArray;
};
});
希望它会有所帮助。 干杯